mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-19 13:41:03 +00:00
Update translations: fill empty entries in all languages and fix color picker strings (#16652)
This commit is contained in:
1 parent
e5b6cbf091
commit
c5cfe40a1f
30 files changed
+18514
-8558
No files matched your search
@@ -1,6 +1,6 @@
|
||||
---
|
||||
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.
|
||||
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 developer_reference/glossary), 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
|
||||
@@ -9,7 +9,7 @@ The UI strings live in gettext catalogs: `localization/i18n/OrcaSlicer.pot` is t
|
||||
`localization/i18n/<lang>/OrcaSlicer_<lang>.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.
|
||||
whose source is the per-language files in `developer_reference/glossary/` (`terms.tsv`, `languages.txt` and one `<lang>.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).
|
||||
@@ -153,7 +153,7 @@ Report:
|
||||
- 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
|
||||
The catalogs (and `OrcaSlicer.pot`) and the glossary (`developer_reference/glossary/*.tsv` and `localization_glossary.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.
|
||||
|
||||
@@ -210,7 +210,7 @@ with the translators, followed by the catalogs.
|
||||
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;
|
||||
- the wiki's `localization_guide.md` and `localization_glossary.md` and `glossary/*.tsv` for the rules and terms;
|
||||
- `AGENTS.md` (Localization & translations) for the repository's conventions.
|
||||
|
||||
## Editing this skill
|
||||
|
||||
@@ -28,13 +28,14 @@ import sys
|
||||
import tempfile
|
||||
import time
|
||||
import unicodedata
|
||||
import urllib.error
|
||||
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_DIR = Path("developer_reference") / "glossary" # terms.tsv, languages.txt and one <lang>.tsv per language
|
||||
GLOSSARY_MD = Path("developer_reference") / "localization_glossary.md"
|
||||
MISSING = {"", "—"}
|
||||
RAW_URL = "https://raw.githubusercontent.com/OrcaSlicer/OrcaSlicer_WIKI/main/"
|
||||
@@ -252,30 +253,40 @@ def all_langs():
|
||||
|
||||
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():
|
||||
if cand and (Path(cand) / GLOSSARY_DIR / "terms.tsv").exists():
|
||||
return Path(cand)
|
||||
return None
|
||||
|
||||
|
||||
def _download(rel):
|
||||
cache = Path(tempfile.gettempdir()) / ("orca_glossary_" + rel.name)
|
||||
def _download(rel, required=True):
|
||||
cache = Path(tempfile.gettempdir()) / "orca_glossary" / rel
|
||||
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())
|
||||
try:
|
||||
with urllib.request.urlopen(RAW_URL + rel.as_posix(), timeout=30) as r:
|
||||
data = r.read()
|
||||
except urllib.error.HTTPError:
|
||||
if required:
|
||||
raise
|
||||
return None
|
||||
cache.parent.mkdir(parents=True, exist_ok=True)
|
||||
cache.write_bytes(data)
|
||||
return cache
|
||||
|
||||
|
||||
class Glossary:
|
||||
def __init__(self, wiki_arg=None, quiet=False):
|
||||
"""The glossary: rows of [English, Description, <one translation per language loaded>]."""
|
||||
|
||||
def __init__(self, wiki_arg=None, quiet=False, langs=None):
|
||||
self.wiki = find_wiki(wiki_arg)
|
||||
self.langs = langs # only these languages' files are read (and downloaded); None means all
|
||||
if self.wiki:
|
||||
self.tsv, self.md = self.wiki / GLOSSARY_TSV, self.wiki / GLOSSARY_MD
|
||||
self.dir, self.md = self.wiki / GLOSSARY_DIR, 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.dir, self.md = _download(GLOSSARY_DIR / "terms.tsv").parent, _download(GLOSSARY_MD)
|
||||
self.load()
|
||||
|
||||
def report_clone_state(self):
|
||||
@@ -290,11 +301,23 @@ class Glossary:
|
||||
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 _read(self, name, required=True):
|
||||
path = self.dir / name if self.wiki else _download(GLOSSARY_DIR / name, required)
|
||||
return path.read_text(encoding="utf-8-sig").splitlines() if path and path.exists() else None
|
||||
|
||||
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:]]
|
||||
terms = [l.split(" ") for l in self._read("terms.tsv")[1:] if l.strip()]
|
||||
langs = [l.strip() for l in self._read("languages.txt") if l.strip()]
|
||||
langs = [l for l in langs if self.langs is None or l in self.langs]
|
||||
self.header = ["English", "Description"] + langs
|
||||
self.rows = [[r[0], r[1] if len(r) > 1 else ""] + [""] * len(langs) for r in terms]
|
||||
index = {r[0]: r for r in self.rows}
|
||||
for col, lang in enumerate(langs, start=2):
|
||||
for line in (self._read(f"{lang}.tsv", required=False) or [])[1:]:
|
||||
cells = line.split(" ")
|
||||
# "—" marks a language with no established rendering yet
|
||||
if len(cells) > 2 and cells[0] in index and cells[2].strip() not in MISSING:
|
||||
index[cells[0]][col] = cells[2].strip()
|
||||
self.matchers = []
|
||||
for row in self.rows:
|
||||
base = re.sub(r"\s*\([^)]*\)\s*$", "", row[0]).strip()
|
||||
@@ -494,7 +517,7 @@ def similar_entries(c, e, pool, cutoff=0.72):
|
||||
|
||||
def cmd_pending(a):
|
||||
c = Catalog(catalog_path(a.lang))
|
||||
g = Glossary(a.wiki)
|
||||
g = Glossary(a.wiki, langs=[a.lang])
|
||||
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
|
||||
@@ -533,7 +556,7 @@ def cmd_pending(a):
|
||||
|
||||
def cmd_apply(a):
|
||||
c = Catalog(catalog_path(a.lang))
|
||||
g = None if a.no_glossary else Glossary(a.wiki, quiet=True)
|
||||
g = None if a.no_glossary else Glossary(a.wiki, quiet=True, langs=[a.lang])
|
||||
data = json.loads(Path(a.input).read_text(encoding="utf-8"))
|
||||
items = data["entries"] if isinstance(data, dict) else data
|
||||
idx = c.index()
|
||||
@@ -588,7 +611,7 @@ def find_msgfmt():
|
||||
|
||||
|
||||
def cmd_check(a):
|
||||
g = None if a.no_glossary else Glossary(a.wiki, quiet=True)
|
||||
g = None if a.no_glossary else Glossary(a.wiki, quiet=True, langs=a.lang or None)
|
||||
msgfmt = find_msgfmt()
|
||||
status = 0
|
||||
for lang in a.lang or all_langs():
|
||||
@@ -646,7 +669,7 @@ def cmd_lookup(a):
|
||||
|
||||
|
||||
def cmd_glossary(a):
|
||||
g = Glossary(a.wiki)
|
||||
g = Glossary(a.wiki, langs=[a.lang])
|
||||
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}=...")
|
||||
@@ -733,6 +756,17 @@ def cmd_candidates(a):
|
||||
print(f"{cnt:7} {langs:6} {text}{' [label]' if k in labels else ''} e.g. {ex[:70]}{'…' if len(ex) > 70 else ''}")
|
||||
|
||||
|
||||
def _edit_tsv(path, edit):
|
||||
"""Apply edit(lines) to a glossary TSV, keeping its BOM and line endings."""
|
||||
data = path.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()
|
||||
edit(lines)
|
||||
path.write_bytes((b"\xef\xbb\xbf" if bom else b"") + (nl.join(lines) + nl).encode("utf-8"))
|
||||
|
||||
|
||||
def cmd_glossary_set(a):
|
||||
wiki = find_wiki(a.wiki)
|
||||
if not wiki:
|
||||
@@ -741,8 +775,21 @@ def cmd_glossary_set(a):
|
||||
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")
|
||||
gdir = wiki / GLOSSARY_DIR
|
||||
gen = wiki / "generate_glossary.py"
|
||||
if not gen.exists():
|
||||
sys.exit(f"{gen} not found")
|
||||
run_gen = lambda *args: subprocess.run([sys.executable, str(gen), *args], cwd=wiki, capture_output=True, text=True)
|
||||
langs = [l.strip() for l in (gdir / "languages.txt").read_text(encoding="utf-8-sig").splitlines() if l.strip()]
|
||||
values = {}
|
||||
for s in a.set:
|
||||
lang, _, val = s.partition("=")
|
||||
if lang not in langs:
|
||||
sys.exit(f"no glossary language '{lang}' (add it to {GLOSSARY_DIR.as_posix()}/languages.txt)")
|
||||
if "\t" in val or "\n" in val:
|
||||
sys.exit("values cannot contain tabs or line breaks")
|
||||
values[lang] = val.strip()
|
||||
lock = gdir / ".lock"
|
||||
for _ in range(100):
|
||||
try:
|
||||
fd = os.open(lock, os.O_CREAT | os.O_EXCL)
|
||||
@@ -752,50 +799,51 @@ def cmd_glossary_set(a):
|
||||
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]
|
||||
terms = (gdir / "terms.tsv").read_text(encoding="utf-8-sig").splitlines()
|
||||
new = not any(l.split("\t")[0] == a.term for l in terms[1:])
|
||||
if new and not a.description:
|
||||
sys.exit("a new term needs --description (one sentence saying what it is)")
|
||||
# an established translation is only replaced on request
|
||||
conflicts = []
|
||||
for lang, v in values.items():
|
||||
for line in (gdir / f"{lang}.tsv").read_text(encoding="utf-8-sig").splitlines()[1:]:
|
||||
cells = line.split("\t")
|
||||
if cells[0] == a.term and len(cells) > 2 and cells[2].strip() not in MISSING and cells[2] != v:
|
||||
conflicts.append(f"{lang}: '{cells[2]}' -> '{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"))
|
||||
|
||||
def edit_terms(lines):
|
||||
for i, l in enumerate(lines):
|
||||
if i and l.split("\t")[0] == a.term:
|
||||
if a.description:
|
||||
lines[i] = f"{a.term}\t{a.description}"
|
||||
return
|
||||
lines.append(f"{a.term}\t{a.description}")
|
||||
if new or a.description:
|
||||
_edit_tsv(gdir / "terms.tsv", edit_terms)
|
||||
r = run_gen("--sync") # copies the term and description into every language file
|
||||
if r.returncode:
|
||||
sys.exit((r.stdout + r.stderr).strip())
|
||||
|
||||
def setter(lang, v):
|
||||
def edit(lines):
|
||||
for i, l in enumerate(lines):
|
||||
cells = l.split("\t")
|
||||
if i and cells[0] == a.term:
|
||||
lines[i] = "\t".join(cells[:2] + [v])
|
||||
return
|
||||
sys.exit(f"{lang}.tsv has no row for '{a.term}'")
|
||||
return edit
|
||||
for lang, v in values.items():
|
||||
_edit_tsv(gdir / f"{lang}.tsv", setter(lang, v))
|
||||
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
|
||||
r = run_gen("--update")
|
||||
print((r.stdout + r.stderr).strip())
|
||||
return r.returncode
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
@@ -91,7 +91,7 @@ See `.claude/skills/orca-translations/references/source-audit.md` for the full c
|
||||
### 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.
|
||||
- If a term's established translation changes, update both the affected `.po` files and the glossary (`localization_glossary.tsv`, then regenerate) so they stay in sync.
|
||||
- If a term's established translation changes, update both the affected `.po` files and the glossary (`developer_reference/glossary/<lang>.tsv` in the wiki, then regenerate) so they stay in sync.
|
||||
- Translate the *meaning*, not the words. Check what the string actually controls before translating it — English reuses one word for different things. `Flow ratio` (multiplier), `Flow Rate` (throughput) and `Flow Dynamics` (pressure compensation) are three different terms; `extruder` may mean the toolhead, the feeder motor, or the nozzle depending on the string.
|
||||
- Reuse one template per recurring message shape (`Failed to connect to …`, `Are you sure you want to …?`), even where the English wording varies.
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-15 17:40+0800\n"
|
||||
"POT-Creation-Date: 2026-10-19 09:48-0300\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -6049,7 +6049,7 @@ msgstr ""
|
||||
msgid "Size:"
|
||||
msgstr ""
|
||||
|
||||
#, possible-boost-format
|
||||
#, possible-c-format, possible-boost-format
|
||||
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
|
||||
msgstr ""
|
||||
|
||||
@@ -12318,7 +12318,7 @@ msgstr ""
|
||||
msgid "Left mouse"
|
||||
msgstr ""
|
||||
|
||||
msgid "Available anywhere in the window, even while typing in a text field."
|
||||
msgid "Available anywhere in the window."
|
||||
msgstr ""
|
||||
|
||||
msgid "Run favorite 1 to 10"
|
||||
@@ -12415,9 +12415,6 @@ msgstr ""
|
||||
msgid "The default %s is assigned to %s. Reassign it to %s?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Global shortcuts also apply while typing."
|
||||
msgstr ""
|
||||
|
||||
msgid "A key that types a character cannot be a global shortcut."
|
||||
msgstr ""
|
||||
|
||||
@@ -26501,17 +26498,18 @@ msgstr ""
|
||||
msgid "Basic Colors"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
msgid "Orca Palette"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
msgid "RAL Classic"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
msgid "Gradients"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Color picker"
|
||||
msgid "Solid"
|
||||
msgstr ""
|
||||
|
||||
@@ -26886,7 +26884,7 @@ msgstr ""
|
||||
msgid "Medium violet red"
|
||||
msgstr ""
|
||||
|
||||
msgid "PaleV violet red"
|
||||
msgid "Pale violet red"
|
||||
msgstr ""
|
||||
|
||||
msgid "Deep pink"
|
||||
@@ -27048,7 +27046,7 @@ msgstr ""
|
||||
msgid "Shallow sky"
|
||||
msgstr ""
|
||||
|
||||
msgid "Electric bel"
|
||||
msgid "Electric blue"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dolphin"
|
||||
@@ -27117,7 +27115,7 @@ msgstr ""
|
||||
msgid "Maize yellow"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dalmatian yellow"
|
||||
msgid "Daffodil yellow"
|
||||
msgstr ""
|
||||
|
||||
msgid "Brown beige"
|
||||
@@ -27378,7 +27376,7 @@ msgstr ""
|
||||
msgid "Turquoise blue"
|
||||
msgstr ""
|
||||
|
||||
msgid "Capsanthin violet"
|
||||
msgid "Capri blue"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ocean blue"
|
||||
@@ -27492,7 +27490,7 @@ msgstr ""
|
||||
msgid "Silver grey"
|
||||
msgstr ""
|
||||
|
||||
msgid "Olivestone"
|
||||
msgid "Olive grey"
|
||||
msgstr ""
|
||||
|
||||
msgid "Moss grey"
|
||||
@@ -28080,10 +28078,19 @@ msgstr ""
|
||||
msgid "Built-in"
|
||||
msgstr ""
|
||||
|
||||
msgid "My textures"
|
||||
msgstr ""
|
||||
|
||||
msgid "No textures found."
|
||||
msgstr ""
|
||||
|
||||
msgid "My textures"
|
||||
msgid "Texture libraries"
|
||||
msgstr ""
|
||||
|
||||
msgid "Explore more texture libraries"
|
||||
msgstr ""
|
||||
|
||||
msgid "Opens OrcaCloud in the Home page to browse for plugins."
|
||||
msgstr ""
|
||||
|
||||
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."
|
||||
@@ -30136,6 +30143,9 @@ msgstr ""
|
||||
msgid "Slicing Pipeline"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource Texture"
|
||||
msgstr ""
|
||||
|
||||
msgid "The plugin's configuration UI was empty. Showing the default editor."
|
||||
msgstr ""
|
||||
|
||||
@@ -30251,6 +30261,24 @@ msgstr ""
|
||||
msgid "Plugin directory does not contain a .py or .whl entry file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture directory is not set"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture directory could not be resolved"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture path is not a directory"
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin folder could not be resolved"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture directory is outside the plugin folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture directory could not be read"
|
||||
msgstr ""
|
||||
|
||||
#, possible-boost-format
|
||||
msgid "Slicing pipeline plugin '%1%' error: %2%"
|
||||
msgstr ""
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-15 17:40+0800\n"
|
||||
"POT-Creation-Date: 2026-10-19 09:48-0300\n"
|
||||
"PO-Revision-Date: 2026-06-17 15:44-0300\n"
|
||||
"Last-Translator: Alexandre Folle de Menezes\n"
|
||||
"Language-Team: \n"
|
||||
@@ -6045,7 +6045,7 @@ msgstr ""
|
||||
msgid "Size:"
|
||||
msgstr ""
|
||||
|
||||
#, boost-format
|
||||
#, c-format, boost-format
|
||||
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
|
||||
msgstr ""
|
||||
|
||||
@@ -10653,6 +10653,9 @@ msgstr ""
|
||||
msgid "Send Failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "No available printers"
|
||||
msgstr ""
|
||||
|
||||
msgid "The name length exceeds the limit."
|
||||
msgstr ""
|
||||
|
||||
@@ -12311,7 +12314,7 @@ msgstr ""
|
||||
msgid "Left mouse"
|
||||
msgstr ""
|
||||
|
||||
msgid "Available anywhere in the window, even while typing in a text field."
|
||||
msgid "Available anywhere in the window."
|
||||
msgstr ""
|
||||
|
||||
msgid "Run favorite 1 to 10"
|
||||
@@ -12408,9 +12411,6 @@ msgstr ""
|
||||
msgid "The default %s is assigned to %s. Reassign it to %s?"
|
||||
msgstr ""
|
||||
|
||||
msgid "Global shortcuts also apply while typing."
|
||||
msgstr ""
|
||||
|
||||
msgid "A key that types a character cannot be a global shortcut."
|
||||
msgstr ""
|
||||
|
||||
@@ -15641,6 +15641,12 @@ msgstr ""
|
||||
msgid "Enable this option to add EXCLUDE OBJECT command in G-code."
|
||||
msgstr ""
|
||||
|
||||
msgid "Outline tolerance"
|
||||
msgstr ""
|
||||
|
||||
msgid "Maximum deviation of the object outline written to EXCLUDE_OBJECT_DEFINE from the original outline. Larger values give fewer points, which helps firmware that stalls while parsing G-code with many objects. 0 keeps every point."
|
||||
msgstr ""
|
||||
|
||||
msgid "Verbose G-code"
|
||||
msgstr ""
|
||||
|
||||
@@ -26488,17 +26494,18 @@ msgstr ""
|
||||
msgid "Basic Colors"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
msgid "Orca Palette"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
msgid "RAL Classic"
|
||||
msgstr ""
|
||||
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
msgid "Gradients"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Color picker"
|
||||
msgid "Solid"
|
||||
msgstr ""
|
||||
|
||||
@@ -26873,7 +26880,7 @@ msgstr ""
|
||||
msgid "Medium violet red"
|
||||
msgstr ""
|
||||
|
||||
msgid "PaleV violet red"
|
||||
msgid "Pale violet red"
|
||||
msgstr ""
|
||||
|
||||
msgid "Deep pink"
|
||||
@@ -27035,7 +27042,7 @@ msgstr ""
|
||||
msgid "Shallow sky"
|
||||
msgstr ""
|
||||
|
||||
msgid "Electric bel"
|
||||
msgid "Electric blue"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dolphin"
|
||||
@@ -27104,7 +27111,7 @@ msgstr ""
|
||||
msgid "Maize yellow"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dalmatian yellow"
|
||||
msgid "Daffodil yellow"
|
||||
msgstr ""
|
||||
|
||||
msgid "Brown beige"
|
||||
@@ -27365,7 +27372,7 @@ msgstr ""
|
||||
msgid "Turquoise blue"
|
||||
msgstr ""
|
||||
|
||||
msgid "Capsanthin violet"
|
||||
msgid "Capri blue"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ocean blue"
|
||||
@@ -27479,7 +27486,7 @@ msgstr ""
|
||||
msgid "Silver grey"
|
||||
msgstr ""
|
||||
|
||||
msgid "Olivestone"
|
||||
msgid "Olive grey"
|
||||
msgstr ""
|
||||
|
||||
msgid "Moss grey"
|
||||
@@ -28067,10 +28074,19 @@ msgstr ""
|
||||
msgid "Built-in"
|
||||
msgstr ""
|
||||
|
||||
msgid "My textures"
|
||||
msgstr ""
|
||||
|
||||
msgid "No textures found."
|
||||
msgstr ""
|
||||
|
||||
msgid "My textures"
|
||||
msgid "Texture libraries"
|
||||
msgstr ""
|
||||
|
||||
msgid "Explore more texture libraries"
|
||||
msgstr ""
|
||||
|
||||
msgid "Opens OrcaCloud in the Home page to browse for plugins."
|
||||
msgstr ""
|
||||
|
||||
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."
|
||||
@@ -30123,6 +30139,9 @@ msgstr ""
|
||||
msgid "Slicing Pipeline"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource Texture"
|
||||
msgstr ""
|
||||
|
||||
msgid "The plugin's configuration UI was empty. Showing the default editor."
|
||||
msgstr ""
|
||||
|
||||
@@ -30238,6 +30257,24 @@ msgstr ""
|
||||
msgid "Plugin directory does not contain a .py or .whl entry file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture directory is not set"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture directory could not be resolved"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture path is not a directory"
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin folder could not be resolved"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture directory is outside the plugin folder"
|
||||
msgstr ""
|
||||
|
||||
msgid "Resource texture directory could not be read"
|
||||
msgstr ""
|
||||
|
||||
#, boost-format
|
||||
msgid "Slicing pipeline plugin '%1%' error: %2%"
|
||||
msgstr ""
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-15 17:40+0800\n"
|
||||
"POT-Creation-Date: 2026-10-19 09:48-0300\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Guislain Cyril, Thomas Lété\n"
|
||||
@@ -311,7 +311,7 @@ msgid "Tungsten Carbide"
|
||||
msgstr "Carbure de tungstène"
|
||||
|
||||
msgid "The toolhead and hotend rack may move. Please keep your hands away from the chamber."
|
||||
msgstr "La tête d'outil et le rack hotend peuvent se déplacer. Veuillez garder vos mains hors de la chambre."
|
||||
msgstr "La tête d'outil et le rack hotend peuvent se déplacer. Veuillez garder vos mains hors du caisson."
|
||||
|
||||
msgid "Warning"
|
||||
msgstr "Avertissement"
|
||||
@@ -329,7 +329,7 @@ msgid "Reading the hotends, please wait."
|
||||
msgstr "Lecture des hotends, veuillez patienter."
|
||||
|
||||
msgid "During the hotend upgrade, the toolhead will move. Don't reach into the chamber."
|
||||
msgstr "Pendant la mise à niveau du hotend, la tête d’outil va se déplacer. Ne mettez pas vos mains dans la chambre."
|
||||
msgstr "Pendant la mise à niveau du hotend, la tête d’outil va se déplacer. Ne mettez pas vos mains dans le caisson."
|
||||
|
||||
msgid "Update"
|
||||
msgstr "Mise à jour"
|
||||
@@ -1146,13 +1146,13 @@ msgid "Delete connector"
|
||||
msgstr "Supprimer le connecteur"
|
||||
|
||||
msgid "Entering Cut gizmo"
|
||||
msgstr "Entrée dans l’outil Couper"
|
||||
msgstr "Entrée dans le gizmo Couper"
|
||||
|
||||
msgid "Leaving Cut gizmo"
|
||||
msgstr "Quitter l’outil Couper"
|
||||
msgstr "Sortie du gizmo Couper"
|
||||
|
||||
msgid "Cut gizmo editing"
|
||||
msgstr "Modification de la découpe"
|
||||
msgstr "Édition dans le gizmo Couper"
|
||||
|
||||
msgid "Mesh name"
|
||||
msgstr "Nom du maillage"
|
||||
@@ -1254,10 +1254,10 @@ msgid "Embossed text"
|
||||
msgstr "Texte en relief"
|
||||
|
||||
msgid "Enter emboss gizmo"
|
||||
msgstr "Entrer dans l’outil d’embossage"
|
||||
msgstr "Entrer dans le gizmo d’embossage"
|
||||
|
||||
msgid "Leave emboss gizmo"
|
||||
msgstr "Quitter l’outil d’embossage"
|
||||
msgstr "Quitter le gizmo d’embossage"
|
||||
|
||||
msgid "Embossing actions"
|
||||
msgstr "Actions d’embossage"
|
||||
@@ -1669,10 +1669,10 @@ msgid "SVG move"
|
||||
msgstr "Déplacement du SVG"
|
||||
|
||||
msgid "Enter SVG gizmo"
|
||||
msgstr "Ouvrir l’outil SVG"
|
||||
msgstr "Ouvrir le gizmo SVG"
|
||||
|
||||
msgid "Leave SVG gizmo"
|
||||
msgstr "Quitter l’outil SVG"
|
||||
msgstr "Quitter le gizmo SVG"
|
||||
|
||||
msgid "SVG actions"
|
||||
msgstr "Actions SVG"
|
||||
@@ -2011,10 +2011,10 @@ msgid "Flip by Face 2"
|
||||
msgstr "Retournement par la Face 2"
|
||||
|
||||
msgid "Entering Measure gizmo"
|
||||
msgstr "Entrée dans l’outil Mesurer"
|
||||
msgstr "Entrée dans le gizmo Mesurer"
|
||||
|
||||
msgid "Leaving Measure gizmo"
|
||||
msgstr "Quitter l’outil Mesurer"
|
||||
msgstr "Sortie du gizmo Mesurer"
|
||||
|
||||
# AI Translated
|
||||
msgctxt "Assembly tool"
|
||||
@@ -2070,7 +2070,7 @@ msgstr "L’alignement sur la plaque n’est disponible qu’en X et Y"
|
||||
|
||||
# AI Translated
|
||||
msgid "Turn off Auto-Drop for the selected objects to move them in Z"
|
||||
msgstr "Désactivez la dépose automatique des objets sélectionnés pour les déplacer en Z"
|
||||
msgstr "Désactivez le dépôt automatique des objets sélectionnés pour les déplacer en Z"
|
||||
|
||||
# AI Translated
|
||||
msgid "All selected objects must be on the same plate"
|
||||
@@ -3813,7 +3813,7 @@ msgid "Init"
|
||||
msgstr "Initialisation"
|
||||
|
||||
msgid "Chamber"
|
||||
msgstr "Chambre"
|
||||
msgstr "Caisson"
|
||||
|
||||
msgid "Innerloop"
|
||||
msgstr "Boucle interne"
|
||||
@@ -6472,7 +6472,7 @@ msgstr "Volume :"
|
||||
msgid "Size:"
|
||||
msgstr "Taille :"
|
||||
|
||||
#, boost-format
|
||||
#, c-format, boost-format
|
||||
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
|
||||
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)."
|
||||
|
||||
@@ -8428,11 +8428,11 @@ msgstr "Identifie le type et la position de la plaque de construction sur le pla
|
||||
|
||||
# AI Translated
|
||||
msgid "Purifies the chamber air as the print finishes, based on the selected mode."
|
||||
msgstr "Purifie l'air de la chambre à la fin de l'impression, selon le mode sélectionné."
|
||||
msgstr "Purifie l'air du caisson à la fin de l'impression, selon le mode sélectionné."
|
||||
|
||||
# AI Translated
|
||||
msgid "Purifies the chamber air through internal circulation as each print finishes."
|
||||
msgstr "Purifie l'air de la chambre par circulation interne à la fin de chaque impression."
|
||||
msgstr "Purifie l'air du caisson par circulation interne à la fin de chaque impression."
|
||||
|
||||
# AI Translated
|
||||
msgid "Automatically match the corresponding switch strategy for leak-prone filaments (disable blob detection) and regular filaments (enable blob detection)."
|
||||
@@ -11562,6 +11562,10 @@ msgstr "Échec du téléversement du fichier vers le stockage de l’imprimante.
|
||||
msgid "Send Failed"
|
||||
msgstr "Échec de l’envoi"
|
||||
|
||||
# AI Translated
|
||||
msgid "No available printers"
|
||||
msgstr "Aucune imprimante disponible"
|
||||
|
||||
msgid "The name length exceeds the limit."
|
||||
msgstr "La longueur du nom dépasse la limite."
|
||||
|
||||
@@ -12062,8 +12066,8 @@ 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 ""
|
||||
"Lorsque vous enregistrez un timelapse sans tête d’outil, il est recommandé d’ajouter une \"Tour d’essuyage timelapse\".\n"
|
||||
"en faisant un clic droit sur un emplacement vide sur le plateau et en choisissant \"Ajouter Primitive\"-> \"Tour d’essuyage timelapse\"."
|
||||
"Lorsque vous enregistrez un timelapse sans tête d’outil, il est recommandé d’ajouter une \"Tour d’amorçage timelapse\".\n"
|
||||
"en faisant un clic droit sur un emplacement vide sur le plateau et en choisissant \"Ajouter Primitive\"-> \"Tour d’amorçage timelapse\"."
|
||||
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Une copie du préréglage actuel du système est créée et détachée du préréglage du système."
|
||||
@@ -12362,7 +12366,7 @@ msgid "Filament end G-code"
|
||||
msgstr "G-code de fin de filament"
|
||||
|
||||
msgid "Wipe tower parameters"
|
||||
msgstr "Paramètres de la tour d’essuyage"
|
||||
msgstr "Paramètres de la tour d’amorçage"
|
||||
|
||||
msgid "Multi Filament"
|
||||
msgstr "Multi-filament"
|
||||
@@ -12511,7 +12515,7 @@ msgid "Nozzle diameter"
|
||||
msgstr "Diamètre de la buse"
|
||||
|
||||
msgid "Wipe tower"
|
||||
msgstr "Tour d’essuyage"
|
||||
msgstr "Tour d’amorçage"
|
||||
|
||||
# AI Translated
|
||||
msgid "Belt purge tower"
|
||||
@@ -13380,8 +13384,8 @@ msgid "Left mouse"
|
||||
msgstr "Clic gauche"
|
||||
|
||||
# AI Translated
|
||||
msgid "Available anywhere in the window, even while typing in a text field."
|
||||
msgstr "Disponible partout dans la fenêtre, même pendant la saisie dans un champ de texte."
|
||||
msgid "Available anywhere in the window."
|
||||
msgstr "Disponible partout dans la fenêtre."
|
||||
|
||||
# AI Translated
|
||||
msgid "Run favorite 1 to 10"
|
||||
@@ -13486,9 +13490,6 @@ msgstr "%s est attribué à %s. Le réattribuer à %s ?"
|
||||
msgid "The default %s is assigned to %s. Reassign it to %s?"
|
||||
msgstr "La valeur par défaut %s est attribuée à %s. La réattribuer à %s ?"
|
||||
|
||||
msgid "Global shortcuts also apply while typing."
|
||||
msgstr "Les raccourcis globaux s'appliquent aussi pendant la saisie."
|
||||
|
||||
# AI Translated
|
||||
msgid "A key that types a character cannot be a global shortcut."
|
||||
msgstr "Une touche qui saisit un caractère ne peut pas être un raccourci global."
|
||||
@@ -13762,7 +13763,7 @@ 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."
|
||||
msgstr "Échec de la génération de la tour d’amorçage, 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."
|
||||
@@ -14287,16 +14288,16 @@ msgstr "La hauteur de couche variable n’est pas prise en charge avec les suppo
|
||||
# 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."
|
||||
msgstr "Le filament de la tour d’amorçage ne peut pas être un filament mixte."
|
||||
|
||||
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 "Différents diamètres de buses et de filaments peuvent ne pas fonctionner correctement lorsque la tour d’amorçage est activée. Il s’agit d’un projet très expérimental, il convient donc de procéder avec prudence."
|
||||
|
||||
msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)."
|
||||
msgstr "La tour d’essuyage n’est actuellement prise en charge qu’avec l’adressage relatif des extrudeurs (use_relative_e_distances=1)."
|
||||
msgstr "La tour d’amorçage n’est actuellement prise en charge qu’avec l’adressage relatif des extrudeurs (use_relative_e_distances=1)."
|
||||
|
||||
msgid "Ooze prevention is only supported with the wipe tower when 'single_extruder_multi_material' is off."
|
||||
msgstr "La prévention du suintement n’est possible qu’avec la tour d’essuyage lorsque l’option ‘single_extruder_multi_material’ est désactivée."
|
||||
msgstr "La prévention du suintement n’est possible qu’avec la tour d’amorçage lorsque l’option ‘single_extruder_multi_material’ est désactivée."
|
||||
|
||||
msgid "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors."
|
||||
msgstr "La tour d’amorçage n’est actuellement prise en charge que pour les versions Marlin, RepRap/Sprinter, RepRapFirmware et Repetier G-code."
|
||||
@@ -16237,7 +16238,7 @@ msgid "Loading speed"
|
||||
msgstr "Vitesse de chargement"
|
||||
|
||||
msgid "Speed used for loading the filament on the wipe tower."
|
||||
msgstr "Vitesse utilisée pour charger le filament sur la tour d’essuyage."
|
||||
msgstr "Vitesse utilisée pour charger le filament sur la tour d’amorçage."
|
||||
|
||||
msgid "Loading speed at the start"
|
||||
msgstr "Vitesse de chargement au démarrage"
|
||||
@@ -16249,7 +16250,7 @@ msgid "Unloading speed"
|
||||
msgstr "Vitesse de déchargement"
|
||||
|
||||
msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)."
|
||||
msgstr "Vitesse utilisée pour le déchargement du filament sur la tour d’essuyage (n’affecte pas la partie initiale de retrait juste après le pilonnage)."
|
||||
msgstr "Vitesse utilisée pour le déchargement du filament sur la tour d’amorçage (n’affecte pas la partie initiale de retrait juste après le pilonnage)."
|
||||
|
||||
msgid "Unloading speed at the start"
|
||||
msgstr "Vitesse de déchargement au démarrage"
|
||||
@@ -16288,13 +16289,13 @@ msgid "Cooling moves are gradually accelerating beginning at this speed."
|
||||
msgstr "Les mouvements de refroidissement s’accélèrent progressivement à partir de cette vitesse."
|
||||
|
||||
msgid "Minimal purge on wipe tower"
|
||||
msgstr "Purge minimale sur la tour d’essuyage"
|
||||
msgstr "Purge minimale sur la tour d’amorçage"
|
||||
|
||||
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 "Après un changement d’outil, la position exacte du filament nouvellement chargé à l’intérieur de la buse peut ne pas être connue et la pression du filament n’est probablement pas encore stable. Avant de purger la tête d’impression dans un remplissage ou un objet, Orca Slicer amorcera toujours cette quantité de matériau dans la tour d’essuyage pour purger dans les remplissages ou objets de manière fiable."
|
||||
msgstr "Après un changement d’outil, la position exacte du filament nouvellement chargé à l’intérieur de la buse peut ne pas être connue et la pression du filament n’est probablement pas encore stable. Avant de purger la tête d’impression dans un remplissage ou un objet, Orca Slicer amorcera toujours cette quantité de matériau dans la tour d’amorçage pour purger dans les remplissages ou objets de manière fiable."
|
||||
|
||||
msgid "Wipe tower cooling"
|
||||
msgstr "Refroidissement de la tour d’essuyage"
|
||||
msgstr "Refroidissement de la tour d’amorçage"
|
||||
|
||||
msgid "Temperature drop before entering filament tower"
|
||||
msgstr "Baisse de température avant l’entrée dans la tour de filament"
|
||||
@@ -16348,7 +16349,7 @@ msgid "Enable ramming for multi-tool setups"
|
||||
msgstr "Activer le pilonnage pour les configurations multi-outils"
|
||||
|
||||
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 "Effectuez un pilonnage lorsque vous utilisez une imprimante multi-outils (c’est-à-dire lorsque l’option ‘Multi-matériau à extrudeur unique’ dans les paramètres de l’imprimante n’est pas cochée). Une fois vérifié, une petite quantité de filament est rapidement extrudée sur la tour d’essuyage juste avant le changement d’outil. Cette option n’est utilisée que lorsque la tour d’essuyage est activée."
|
||||
msgstr "Effectuez un pilonnage lorsque vous utilisez une imprimante multi-outils (c’est-à-dire lorsque l’option ‘Multi-matériau à extrudeur unique’ dans les paramètres de l’imprimante n’est pas cochée). Une fois vérifié, une petite quantité de filament est rapidement extrudée sur la tour d’amorçage juste avant le changement d’outil. Cette option n’est utilisée que lorsque la tour d’amorçage est activée."
|
||||
|
||||
msgid "Multi-tool ramming volume"
|
||||
msgstr "Volume du pilonnage multi-outils"
|
||||
@@ -17286,6 +17287,14 @@ msgstr "Exclure des objets"
|
||||
msgid "Enable this option to add EXCLUDE OBJECT command in G-code."
|
||||
msgstr "Activer cette option pour ajouter la commande EXCLUDE OBJECT dans le G-code."
|
||||
|
||||
# AI Translated
|
||||
msgid "Outline tolerance"
|
||||
msgstr "Tolérance du contour"
|
||||
|
||||
# AI Translated
|
||||
msgid "Maximum deviation of the object outline written to EXCLUDE_OBJECT_DEFINE from the original outline. Larger values give fewer points, which helps firmware that stalls while parsing G-code with many objects. 0 keeps every point."
|
||||
msgstr "Écart maximal entre le contour de l’objet écrit dans EXCLUDE_OBJECT_DEFINE et le contour d’origine. Des valeurs plus grandes donnent moins de points, ce qui aide les firmwares qui se bloquent à l’analyse d’un G-code contenant de nombreux objets. 0 conserve tous les points."
|
||||
|
||||
msgid "Verbose G-code"
|
||||
msgstr "G-code commenté"
|
||||
|
||||
@@ -18818,7 +18827,7 @@ 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’amorçage ou la goulotte d’évacuation. Efficace uniquement en mode timelapse traditionnel sur les imprimantes non-I3."
|
||||
|
||||
msgid "Temperature variation"
|
||||
msgstr "Variation de température"
|
||||
@@ -18991,10 +19000,10 @@ msgid "Enable this option to omit the custom Change filament G-code only at the
|
||||
msgstr "Activez cette option pour omettre le G-code de changement de filament personnalisé uniquement au début de l’impression. La commande de changement d’outil (par exemple, T0) sera ignorée tout au long de l’impression. Ceci est utile pour l’impression manuelle multi-matériaux, où nous utilisons M600/PAUSE pour déclencher l’action de changement manuel de filament."
|
||||
|
||||
msgid "Wipe tower type"
|
||||
msgstr "Type de tour de purge"
|
||||
msgstr "Type de tour d'amorçage"
|
||||
|
||||
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 "Choisir l'implémentation de la tour de purge pour les impressions multi-matériaux. Le Type 1 est recommandé pour les imprimantes Bambu et Qidi avec un coupeur de filament. Le Type 2 offre une meilleure compatibilité avec les imprimantes multi-outils et MMU et une meilleure compatibilité globale."
|
||||
msgstr "Choisir l'implémentation de la tour d'amorçage pour les impressions multi-matériaux. Le Type 1 est recommandé pour les imprimantes Bambu et Qidi avec un coupeur de filament. Le Type 2 offre une meilleure compatibilité avec les imprimantes multi-outils et MMU et une meilleure compatibilité globale."
|
||||
|
||||
msgid "Type 1"
|
||||
msgstr "Type 1"
|
||||
@@ -19012,20 +19021,20 @@ msgid "Enable filament ramming"
|
||||
msgstr "Activer le bourrage de filament"
|
||||
|
||||
msgid "Tool change on wipe tower"
|
||||
msgstr "Changement d’outil sur la tour d’essuyage"
|
||||
msgstr "Changement d’outil sur la tour d’amorçage"
|
||||
|
||||
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 "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."
|
||||
msgstr "Force la tête d’outil à se déplacer vers la tour d’amorçage 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’amorçage 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’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 "Wait for temperature on wipe tower"
|
||||
msgstr "Attendre la température sur la tour d’essuyage"
|
||||
msgstr "Attendre la température sur la tour 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 "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."
|
||||
msgstr "Prend le nouvel outil sans attendre qu’il atteigne la température d’impression, se déplace vers la tour d’amorçage 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’amorçage 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."
|
||||
|
||||
msgid "No sparse layers (beta)"
|
||||
msgstr "Pas de couches éparses (beta)"
|
||||
@@ -19033,7 +19042,7 @@ 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’amorçage 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’amorçage : 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"
|
||||
@@ -19519,7 +19528,7 @@ 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."
|
||||
msgstr "Remplacement de la tour 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’amorçage 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"
|
||||
@@ -19528,7 +19537,7 @@ 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."
|
||||
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’amorçage 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"
|
||||
@@ -19778,7 +19787,7 @@ msgid "Enable mixed color sublayer splitting. When enabled, layers containing mi
|
||||
msgstr "Active la division en sous-couches de couleur mixte. Lorsqu’elle est activée, les couches contenant des filaments de couleur mixte sont divisées en sous-couches afin d’obtenir des effets de mélange de couleurs."
|
||||
|
||||
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 "La tour de purge peut être utilisée pour nettoyer les résidus sur la buse et stabiliser la pression du caisson à l'intérieur de la buse afin d'éviter les défauts d'apparence lors de l'impression d'objets."
|
||||
msgstr "La tour d'amorçage peut être utilisée pour nettoyer les résidus sur la buse et stabiliser la pression du caisson à l'intérieur de la buse afin d'éviter les défauts d'apparence lors de l'impression d'objets."
|
||||
|
||||
msgid "Internal ribs"
|
||||
msgstr "Nervures internes"
|
||||
@@ -19816,7 +19825,7 @@ 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’amorçage sont calculés sur les imprimantes multi-extrudeurs."
|
||||
|
||||
# AI Translated
|
||||
msgid "Saving"
|
||||
@@ -19830,10 +19839,10 @@ msgid "This is the width of prime towers."
|
||||
msgstr "Largeur de la tour d’amorçage"
|
||||
|
||||
msgid "Wipe tower rotation angle"
|
||||
msgstr "Angle de rotation de la tour d’essuyage"
|
||||
msgstr "Angle de rotation de la tour d’amorçage"
|
||||
|
||||
msgid "Wipe tower rotation angle with respect to X axis."
|
||||
msgstr "Angle de rotation de la tour d’essuyage par rapport à l’axe X."
|
||||
msgstr "Angle de rotation de la tour d’amorçage par rapport à l’axe X."
|
||||
|
||||
msgid "Brim width of prime tower, negative number means auto calculated width based on the height of prime tower."
|
||||
msgstr "Largeur de la bordure de la tour d'amorçage, un nombre négatif signifie une largeur calculée automatiquement en fonction de la hauteur de la tour d'amorçage."
|
||||
@@ -19842,10 +19851,10 @@ msgid "Stabilization cone apex angle"
|
||||
msgstr "Angle au sommet du cône de stabilisation"
|
||||
|
||||
msgid "Angle at the apex of the cone that is used to stabilize the wipe tower. Larger angle means wider base."
|
||||
msgstr "Angle au sommet du cône utilisé pour stabiliser la tour d’essuyage. Un angle plus grand signifie une base plus large."
|
||||
msgstr "Angle au sommet du cône utilisé pour stabiliser la tour d’amorçage. Un angle plus grand signifie une base plus large."
|
||||
|
||||
msgid "Maximum wipe tower print speed"
|
||||
msgstr "Vitesse maximale d’impression de la tour d’essuyage"
|
||||
msgstr "Vitesse maximale d’impression de la tour 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.
|
||||
@@ -19860,15 +19869,15 @@ msgid ""
|
||||
"\n"
|
||||
"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"
|
||||
"Vitesse d’impression maximale lors de la purge dans la tour d’amorçage et de l’impression des couches éparses de la tour d’amorçage. 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 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"
|
||||
"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’amorçage.\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, également limitée par ce paramètre."
|
||||
"Pour les périmètres externes de la tour d’amorçage, 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"
|
||||
@@ -19881,9 +19890,9 @@ msgid ""
|
||||
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
|
||||
"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 d’essuyage.\n"
|
||||
"Type de paroi extérieure de la tour d’amorçage.\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"
|
||||
"2. Cône : Un cône avec un congé en bas pour aider à stabiliser la tour d’amorçage.\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"
|
||||
@@ -19911,13 +19920,13 @@ msgid "The wall of prime tower will fillet."
|
||||
msgstr "La paroi de la tour d'amorçage aura un congé."
|
||||
|
||||
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 "L’extrudeur à utiliser lors de l’impression du périmètre de la tour d’essuyage. Réglez sur 0 pour utiliser celui qui est disponible (un non-soluble serait préféré)."
|
||||
msgstr "L’extrudeur à utiliser lors de l’impression du périmètre de la tour d’amorçage. Réglez sur 0 pour utiliser celui qui est disponible (un non-soluble serait préféré)."
|
||||
|
||||
msgid "Purging volumes - load/unload volumes"
|
||||
msgstr "Volumes de purge - Volume de Chargement/Déchargement"
|
||||
|
||||
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 "Ce vecteur enregistre les volumes requis pour passer de/vers chaque outil utilisé sur la tour d’essuyage. Ces valeurs sont utilisées pour simplifier la création des volumes de purge complets ci-dessous."
|
||||
msgstr "Ce vecteur enregistre les volumes requis pour passer de/vers chaque outil utilisé sur la tour d’amorçage. Ces valeurs sont utilisées pour simplifier la création des volumes de purge complets ci-dessous."
|
||||
|
||||
msgid "Skip points"
|
||||
msgstr "Sauter des points"
|
||||
@@ -19967,10 +19976,10 @@ msgid "Maximal distance between supports on sparse infill sections."
|
||||
msgstr "Distance maximale entre les supports sur les sections de remplissage."
|
||||
|
||||
msgid "Wipe tower purge lines spacing"
|
||||
msgstr "Espacement des lignes de purge de la tour d’essuyage"
|
||||
msgstr "Espacement des lignes de purge de la tour d’amorçage"
|
||||
|
||||
msgid "Spacing of purge lines on the wipe tower."
|
||||
msgstr "Espacement des lignes de purge sur la tour d’essuyage."
|
||||
msgstr "Espacement des lignes de purge sur la tour d’amorçage."
|
||||
|
||||
msgid "Extra flow for purging"
|
||||
msgstr "Débit supplémentaire pour purger"
|
||||
@@ -19978,7 +19987,7 @@ msgstr "Débit supplémentaire pour purger"
|
||||
# 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."
|
||||
msgstr "Débit supplémentaire utilisé pour les lignes de purge de la tour d’amorçage. 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"
|
||||
@@ -20053,7 +20062,7 @@ msgid "Use relative E distances"
|
||||
msgstr "Utiliser l’extrusion relative"
|
||||
|
||||
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 "L’extrusion relative est recommandée lors de l’utilisation de l’option « label_objects ». Certains extrudeurs fonctionnent mieux avec cette option non verrouillée (mode d’extrusion absolu). La tour d’essuyage n’est compatible qu’avec le mode relatif. Il est recommandé sur la plupart des imprimantes. L’option par défaut est cochée"
|
||||
msgstr "L’extrusion relative est recommandée lors de l’utilisation de l’option « label_objects ». Certains extrudeurs fonctionnent mieux avec cette option non verrouillée (mode d’extrusion absolu). La tour d’amorçage n’est compatible qu’avec le mode relatif. Il est recommandé sur la plupart des imprimantes. L’option par défaut est cochée"
|
||||
|
||||
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 "Le générateur de paroi classique produit des parois avec une largeur d’extrusion constante et, pour les zones très fines, il utilise le remplissage d’espace. Le moteur Arachne produit des parois avec une largeur d’extrusion variable."
|
||||
@@ -20615,10 +20624,10 @@ msgid "Specific for sequential printing. Zero-based index of currently printed o
|
||||
msgstr "Spécifique à l’impression séquentielle. Index commençant à zéro de l’objet en cours d’impression."
|
||||
|
||||
msgid "Has wipe tower"
|
||||
msgstr "Possède une tour d’essuyage"
|
||||
msgstr "Possède une tour d’amorçage"
|
||||
|
||||
msgid "Whether or not wipe tower is being generated in the print."
|
||||
msgstr "Indique si la tour d’essuyage est générée ou non dans l’impression."
|
||||
msgstr "Indique si la tour d’amorçage est générée ou non dans l’impression."
|
||||
|
||||
msgid "Initial extruder"
|
||||
msgstr "Extrudeur initial"
|
||||
@@ -20755,16 +20764,16 @@ msgid "Total cost of all material used in the print. Calculated from filament_co
|
||||
msgstr "Coût total de tous les matériaux utilisés dans l'impression. Calculé à partir de la valeur filament_cost dans les paramètres de filament."
|
||||
|
||||
msgid "Total wipe tower cost"
|
||||
msgstr "Coût total de la tour de purge"
|
||||
msgstr "Coût total de la tour d'amorçage"
|
||||
|
||||
msgid "Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings."
|
||||
msgstr "Coût total du matériau gaspillé sur la tour de purge. Calculé à partir de la valeur filament_cost dans les paramètres de filament."
|
||||
msgstr "Coût total du matériau gaspillé sur la tour d'amorçage. Calculé à partir de la valeur filament_cost dans les paramètres de filament."
|
||||
|
||||
msgid "Wipe tower volume"
|
||||
msgstr "Volume de la tour de purge"
|
||||
msgstr "Volume de la tour d'amorçage"
|
||||
|
||||
msgid "Total filament volume extruded on the wipe tower."
|
||||
msgstr "Volume total de filament extrudé sur la tour de purge."
|
||||
msgstr "Volume total de filament extrudé sur la tour d'amorçage."
|
||||
|
||||
msgid "Used filament"
|
||||
msgstr "Filament utilisé"
|
||||
@@ -20881,7 +20890,7 @@ 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"
|
||||
msgstr "Centre de la première couche sans tour d’amorçage"
|
||||
|
||||
# AI Translated
|
||||
msgid "Height of the first layer."
|
||||
@@ -29922,20 +29931,21 @@ msgid "Basic Colors"
|
||||
msgstr "Couleurs de base"
|
||||
|
||||
# AI Translated
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
msgid "Orca Palette"
|
||||
msgstr "Palette Orca"
|
||||
|
||||
# AI Translated
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
msgid "RAL Classic"
|
||||
msgstr "RAL Classic"
|
||||
|
||||
# AI Translated
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
msgid "Gradients"
|
||||
msgstr "Dégradés"
|
||||
|
||||
# AI Translated
|
||||
msgctxt "Color picker"
|
||||
msgid "Solid"
|
||||
msgstr "Uni"
|
||||
|
||||
@@ -30437,8 +30447,7 @@ msgid "Medium violet red"
|
||||
msgstr "Rouge violacé moyen"
|
||||
|
||||
# AI Translated
|
||||
# Needs human review: Nom de couleur inhabituel ou source possiblement erronée : vérifier
|
||||
msgid "PaleV violet red"
|
||||
msgid "Pale violet red"
|
||||
msgstr "Rouge violacé pâle"
|
||||
|
||||
# AI Translated
|
||||
@@ -30654,8 +30663,7 @@ msgid "Shallow sky"
|
||||
msgstr "Ciel de lagune"
|
||||
|
||||
# AI Translated
|
||||
# Needs human review: Nom de couleur inhabituel ou source possiblement erronée : vérifier
|
||||
msgid "Electric bel"
|
||||
msgid "Electric blue"
|
||||
msgstr "Bleu électrique"
|
||||
|
||||
# AI Translated
|
||||
@@ -30747,8 +30755,8 @@ msgid "Maize yellow"
|
||||
msgstr "Jaune maïs"
|
||||
|
||||
# AI Translated
|
||||
msgid "Dalmatian yellow"
|
||||
msgstr "Jaune dalmatien"
|
||||
msgid "Daffodil yellow"
|
||||
msgstr "Jaune jonquille"
|
||||
|
||||
# AI Translated
|
||||
msgid "Brown beige"
|
||||
@@ -31095,9 +31103,8 @@ msgid "Turquoise blue"
|
||||
msgstr "Bleu turquoise"
|
||||
|
||||
# AI Translated
|
||||
# Needs human review: Nom de couleur inhabituel ou source possiblement erronée : vérifier
|
||||
msgid "Capsanthin violet"
|
||||
msgstr "Violet capsanthine"
|
||||
msgid "Capri blue"
|
||||
msgstr "Bleu Capri"
|
||||
|
||||
# AI Translated
|
||||
msgid "Ocean blue"
|
||||
@@ -31249,9 +31256,8 @@ msgid "Silver grey"
|
||||
msgstr "Gris argent"
|
||||
|
||||
# AI Translated
|
||||
# Needs human review: Nom de couleur inhabituel ou source possiblement erronée : vérifier
|
||||
msgid "Olivestone"
|
||||
msgstr "Pierre d’olive"
|
||||
msgid "Olive grey"
|
||||
msgstr "Gris olive"
|
||||
|
||||
# AI Translated
|
||||
msgid "Moss grey"
|
||||
@@ -32027,13 +32033,25 @@ msgstr "Retirer de Mes textures"
|
||||
msgid "Built-in"
|
||||
msgstr "Prédéfinies"
|
||||
|
||||
# AI Translated
|
||||
msgid "My textures"
|
||||
msgstr "Mes textures"
|
||||
|
||||
# AI Translated
|
||||
msgid "No textures found."
|
||||
msgstr "Aucune texture trouvée."
|
||||
|
||||
# AI Translated
|
||||
msgid "My textures"
|
||||
msgstr "Mes textures"
|
||||
msgid "Texture libraries"
|
||||
msgstr "Bibliothèques de textures"
|
||||
|
||||
# AI Translated
|
||||
msgid "Explore more texture libraries"
|
||||
msgstr "Explorer d’autres bibliothèques de textures"
|
||||
|
||||
# AI Translated
|
||||
msgid "Opens OrcaCloud in the Home page to browse for plugins."
|
||||
msgstr "Ouvre OrcaCloud dans la page d’accueil pour parcourir les plugins."
|
||||
|
||||
# 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."
|
||||
@@ -34742,6 +34760,10 @@ msgstr "Script"
|
||||
msgid "Slicing Pipeline"
|
||||
msgstr "Pipeline de découpage"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource Texture"
|
||||
msgstr "Texture de ressource"
|
||||
|
||||
# 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."
|
||||
@@ -34889,6 +34911,30 @@ msgstr "Le répertoire du plugin contient à la fois des fichiers d’entrée .p
|
||||
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
|
||||
msgid "Resource texture directory is not set"
|
||||
msgstr "Le répertoire des textures de ressource n’est pas défini"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory could not be resolved"
|
||||
msgstr "Le répertoire des textures de ressource n’a pas pu être résolu"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture path is not a directory"
|
||||
msgstr "Le chemin des textures de ressource n’est pas un répertoire"
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin folder could not be resolved"
|
||||
msgstr "Le dossier du plugin n’a pas pu être résolu"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory is outside the plugin folder"
|
||||
msgstr "Le répertoire des textures de ressource se trouve en dehors du dossier du plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory could not be read"
|
||||
msgstr "Le répertoire des textures de ressource n’a pas pu être lu"
|
||||
|
||||
# AI Translated
|
||||
#, boost-format
|
||||
msgid "Slicing pipeline plugin '%1%' error: %2%"
|
||||
@@ -35835,6 +35881,41 @@ 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?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Dalmatian yellow"
|
||||
#~ msgstr "Jaune dalmatien"
|
||||
|
||||
# AI Translated
|
||||
# Needs human review: Nom de couleur inhabituel ou source possiblement erronée : vérifier
|
||||
#~ msgid "Capsanthin violet"
|
||||
#~ msgstr "Violet capsanthine"
|
||||
|
||||
# AI Translated
|
||||
# Needs human review: Nom de couleur inhabituel ou source possiblement erronée : vérifier
|
||||
#~ msgid "Olivestone"
|
||||
#~ msgstr "Pierre d’olive"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Available anywhere in the window, even while typing in a text field."
|
||||
#~ msgstr "Disponible partout dans la fenêtre, même pendant la saisie dans un champ de texte."
|
||||
|
||||
#~ msgid "Global shortcuts also apply while typing."
|
||||
#~ msgstr "Les raccourcis globaux s'appliquent aussi pendant la saisie."
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Solid"
|
||||
#~ msgstr "Uni"
|
||||
|
||||
# AI Translated
|
||||
# Needs human review: Nom de couleur inhabituel ou source possiblement erronée : vérifier
|
||||
#~ msgid "PaleV violet red"
|
||||
#~ msgstr "Rouge violacé pâle"
|
||||
|
||||
# AI Translated
|
||||
# Needs human review: Nom de couleur inhabituel ou source possiblement erronée : vérifier
|
||||
#~ msgid "Electric bel"
|
||||
#~ msgstr "Bleu électrique"
|
||||
|
||||
#~ msgid "Please choose the filament color"
|
||||
#~ msgstr "Veuillez choisir la couleur du filament"
|
||||
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Slic3rPE\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-15 17:40+0800\n"
|
||||
"POT-Creation-Date: 2026-10-19 09:48-0300\n"
|
||||
"PO-Revision-Date: 2026-06-11 12:37-0300\n"
|
||||
"Last-Translator: Handle <mail@bysb.net>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -6699,7 +6699,7 @@ msgstr "体积:"
|
||||
msgid "Size:"
|
||||
msgstr "尺寸:"
|
||||
|
||||
#, boost-format
|
||||
#, c-format, boost-format
|
||||
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
|
||||
msgstr "发现G-code路径在层%d,高度为%.2lf mm处有冲突。请将有冲突的对象分离得更远(%s <-> %s)。"
|
||||
|
||||
@@ -12013,6 +12013,10 @@ msgstr "上传文件到打印机存储失败,请重试。"
|
||||
msgid "Send Failed"
|
||||
msgstr "发送失败"
|
||||
|
||||
# AI Translated
|
||||
msgid "No available printers"
|
||||
msgstr "没有可用的打印机"
|
||||
|
||||
msgid "The name length exceeds the limit."
|
||||
msgstr "名称长度超过限制。"
|
||||
|
||||
@@ -13922,8 +13926,8 @@ msgid "Left mouse"
|
||||
msgstr "鼠标左键"
|
||||
|
||||
# AI Translated
|
||||
msgid "Available anywhere in the window, even while typing in a text field."
|
||||
msgstr "在窗口任意位置可用,即使正在文本框中输入。"
|
||||
msgid "Available anywhere in the window."
|
||||
msgstr "在窗口任意位置可用。"
|
||||
|
||||
# AI Translated
|
||||
msgid "Run favorite 1 to 10"
|
||||
@@ -14039,10 +14043,6 @@ msgstr "%s 已分配给 %s。是否将其重新分配给 %s?"
|
||||
msgid "The default %s is assigned to %s. Reassign it to %s?"
|
||||
msgstr "默认的 %s 已分配给 %s。是否将其重新分配给 %s?"
|
||||
|
||||
# AI Translated
|
||||
msgid "Global shortcuts also apply while typing."
|
||||
msgstr "全局快捷键在输入文字时同样生效。"
|
||||
|
||||
# AI Translated
|
||||
msgid "A key that types a character cannot be a global shortcut."
|
||||
msgstr "会输入字符的按键不能用作全局快捷键。"
|
||||
@@ -18086,6 +18086,14 @@ msgstr "对象排除"
|
||||
msgid "Enable this option to add EXCLUDE OBJECT command in G-code."
|
||||
msgstr "启用此选项以在G-code中添加EXCLUDE OBJECT命令。"
|
||||
|
||||
# AI Translated
|
||||
msgid "Outline tolerance"
|
||||
msgstr "轮廓线公差"
|
||||
|
||||
# AI Translated
|
||||
msgid "Maximum deviation of the object outline written to EXCLUDE_OBJECT_DEFINE from the original outline. Larger values give fewer points, which helps firmware that stalls while parsing G-code with many objects. 0 keeps every point."
|
||||
msgstr "写入 EXCLUDE_OBJECT_DEFINE 的对象轮廓线与原始轮廓线之间的最大偏差。数值越大,点数越少,有助于避免固件在解析包含大量对象的 G-code 时卡顿。0 表示保留所有点。"
|
||||
|
||||
msgid "Verbose G-code"
|
||||
msgstr "注释G-code"
|
||||
|
||||
@@ -31498,20 +31506,21 @@ msgid "Basic Colors"
|
||||
msgstr "基本颜色"
|
||||
|
||||
# AI Translated
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
msgid "Orca Palette"
|
||||
msgstr "Orca 调色板"
|
||||
|
||||
# AI Translated
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
msgid "RAL Classic"
|
||||
msgstr "RAL 经典色"
|
||||
|
||||
# AI Translated
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
msgid "Gradients"
|
||||
msgstr "渐变预设"
|
||||
|
||||
# AI Translated
|
||||
msgctxt "Color picker"
|
||||
msgid "Solid"
|
||||
msgstr "纯色"
|
||||
|
||||
@@ -32010,7 +32019,7 @@ msgid "Medium violet red"
|
||||
msgstr "中紫罗兰红"
|
||||
|
||||
# AI Translated
|
||||
msgid "PaleV violet red"
|
||||
msgid "Pale violet red"
|
||||
msgstr "浅紫罗兰红"
|
||||
|
||||
# AI Translated
|
||||
@@ -32226,8 +32235,7 @@ 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"
|
||||
msgid "Electric blue"
|
||||
msgstr "电光蓝"
|
||||
|
||||
# AI Translated
|
||||
@@ -32319,9 +32327,8 @@ 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 "达尔马提亚黄"
|
||||
msgid "Daffodil yellow"
|
||||
msgstr "水仙黄"
|
||||
|
||||
# AI Translated
|
||||
msgid "Brown beige"
|
||||
@@ -32668,8 +32675,8 @@ msgid "Turquoise blue"
|
||||
msgstr "绿松石蓝"
|
||||
|
||||
# AI Translated
|
||||
msgid "Capsanthin violet"
|
||||
msgstr "辣椒红素紫"
|
||||
msgid "Capri blue"
|
||||
msgstr "卡普里蓝"
|
||||
|
||||
# AI Translated
|
||||
msgid "Ocean blue"
|
||||
@@ -32820,8 +32827,8 @@ msgid "Silver grey"
|
||||
msgstr "银灰色"
|
||||
|
||||
# AI Translated
|
||||
msgid "Olivestone"
|
||||
msgstr "橄榄石色"
|
||||
msgid "Olive grey"
|
||||
msgstr "橄榄灰"
|
||||
|
||||
# AI Translated
|
||||
msgid "Moss grey"
|
||||
@@ -33597,13 +33604,25 @@ msgstr "从“我的纹理”中移除"
|
||||
msgid "Built-in"
|
||||
msgstr "内置"
|
||||
|
||||
# AI Translated
|
||||
msgid "My textures"
|
||||
msgstr "我的纹理"
|
||||
|
||||
# AI Translated
|
||||
msgid "No textures found."
|
||||
msgstr "未找到纹理。"
|
||||
|
||||
# AI Translated
|
||||
msgid "My textures"
|
||||
msgstr "我的纹理"
|
||||
msgid "Texture libraries"
|
||||
msgstr "纹理库"
|
||||
|
||||
# AI Translated
|
||||
msgid "Explore more texture libraries"
|
||||
msgstr "探索更多纹理库"
|
||||
|
||||
# AI Translated
|
||||
msgid "Opens OrcaCloud in the Home page to browse for plugins."
|
||||
msgstr "在主页中打开 OrcaCloud,浏览插件。"
|
||||
|
||||
# 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."
|
||||
@@ -36285,6 +36304,10 @@ msgstr "脚本"
|
||||
msgid "Slicing Pipeline"
|
||||
msgstr "切片流水线"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource Texture"
|
||||
msgstr "资源纹理"
|
||||
|
||||
# AI Translated
|
||||
msgid "The plugin's configuration UI was empty. Showing the default editor."
|
||||
msgstr "插件的配置界面为空。正在显示默认编辑器。"
|
||||
@@ -36433,6 +36456,30 @@ msgstr "插件目录同时包含 .py 和 .whl 入口文件"
|
||||
msgid "Plugin directory does not contain a .py or .whl entry file"
|
||||
msgstr "插件目录不包含 .py 或 .whl 入口文件"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory is not set"
|
||||
msgstr "未设置资源纹理目录"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory could not be resolved"
|
||||
msgstr "无法解析资源纹理目录"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture path is not a directory"
|
||||
msgstr "资源纹理路径不是目录"
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin folder could not be resolved"
|
||||
msgstr "无法解析插件文件夹"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory is outside the plugin folder"
|
||||
msgstr "资源纹理目录位于插件文件夹之外"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory could not be read"
|
||||
msgstr "无法读取资源纹理目录"
|
||||
|
||||
# AI Translated
|
||||
#, boost-format
|
||||
msgid "Slicing pipeline plugin '%1%' error: %2%"
|
||||
@@ -37400,6 +37447,40 @@ msgstr ""
|
||||
"避免翘曲\n"
|
||||
"您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。"
|
||||
|
||||
# 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 "Capsanthin violet"
|
||||
#~ msgstr "辣椒红素紫"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Olivestone"
|
||||
#~ msgstr "橄榄石色"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Available anywhere in the window, even while typing in a text field."
|
||||
#~ msgstr "在窗口任意位置可用,即使正在文本框中输入。"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Global shortcuts also apply while typing."
|
||||
#~ msgstr "全局快捷键在输入文字时同样生效。"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Solid"
|
||||
#~ msgstr "纯色"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "PaleV violet red"
|
||||
#~ 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 "电光蓝"
|
||||
|
||||
#~ msgid "Please choose the filament color"
|
||||
#~ msgstr "请选择耗材丝颜色"
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-15 17:40+0800\n"
|
||||
"POT-Creation-Date: 2026-10-19 09:48-0300\n"
|
||||
"PO-Revision-Date: 2025-11-28 13:48-0600\n"
|
||||
"Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -6912,7 +6912,7 @@ msgid "Size:"
|
||||
msgstr "尺寸:"
|
||||
|
||||
# AI Translated
|
||||
#, boost-format
|
||||
#, c-format, boost-format
|
||||
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
|
||||
msgstr "在第 %d 層(Z = %.2lf mm)發現 G-code 路徑衝突。請將有衝突的物件分開得更遠(%s <-> %s)。"
|
||||
|
||||
@@ -12298,6 +12298,10 @@ msgstr "無法將檔案上傳至列印裝置的儲存空間,請重試。"
|
||||
msgid "Send Failed"
|
||||
msgstr "傳送失敗"
|
||||
|
||||
# AI Translated
|
||||
msgid "No available printers"
|
||||
msgstr "沒有可用的列印裝置"
|
||||
|
||||
msgid "The name length exceeds the limit."
|
||||
msgstr "名稱長度超過限制。"
|
||||
|
||||
@@ -14251,8 +14255,8 @@ msgid "Left mouse"
|
||||
msgstr "滑鼠左鍵"
|
||||
|
||||
# AI Translated
|
||||
msgid "Available anywhere in the window, even while typing in a text field."
|
||||
msgstr "在視窗中任何位置皆可使用,即使正在文字欄位中輸入也可以。"
|
||||
msgid "Available anywhere in the window."
|
||||
msgstr "在視窗中任何位置皆可使用。"
|
||||
|
||||
# AI Translated
|
||||
msgid "Run favorite 1 to 10"
|
||||
@@ -14372,10 +14376,6 @@ msgstr "%s 已指派給 %s。要改為指派給 %s 嗎?"
|
||||
msgid "The default %s is assigned to %s. Reassign it to %s?"
|
||||
msgstr "預設的 %s 已指派給 %s。要改為指派給 %s 嗎?"
|
||||
|
||||
# AI Translated
|
||||
msgid "Global shortcuts also apply while typing."
|
||||
msgstr "全域快速鍵在輸入文字時也會生效。"
|
||||
|
||||
# AI Translated
|
||||
msgid "A key that types a character cannot be a global shortcut."
|
||||
msgstr "會輸入字元的按鍵不能作為全域快速鍵。"
|
||||
@@ -18513,6 +18513,14 @@ msgstr "物件排除"
|
||||
msgid "Enable this option to add EXCLUDE OBJECT command in G-code."
|
||||
msgstr "啟用此選項以在 G-code 中加入 EXCLUDE OBJECT 指令。"
|
||||
|
||||
# AI Translated
|
||||
msgid "Outline tolerance"
|
||||
msgstr "輪廓線公差"
|
||||
|
||||
# AI Translated
|
||||
msgid "Maximum deviation of the object outline written to EXCLUDE_OBJECT_DEFINE from the original outline. Larger values give fewer points, which helps firmware that stalls while parsing G-code with many objects. 0 keeps every point."
|
||||
msgstr "寫入 EXCLUDE_OBJECT_DEFINE 的物件輪廓線與原始輪廓線之間的最大偏差。數值越大,點數越少,有助於避免韌體在解析包含大量物件的 G-code 時卡住。0 表示保留所有點。"
|
||||
|
||||
msgid "Verbose G-code"
|
||||
msgstr "詳細 G-code"
|
||||
|
||||
@@ -32124,21 +32132,22 @@ msgid "Basic Colors"
|
||||
msgstr "基本顏色"
|
||||
|
||||
# AI Translated
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
msgid "Orca Palette"
|
||||
msgstr "Orca 調色盤"
|
||||
|
||||
# AI Translated
|
||||
#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
#. TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
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
|
||||
msgctxt "Color picker"
|
||||
msgid "Solid"
|
||||
msgstr "純色"
|
||||
|
||||
@@ -32637,7 +32646,7 @@ msgid "Medium violet red"
|
||||
msgstr "中紫羅蘭紅"
|
||||
|
||||
# AI Translated
|
||||
msgid "PaleV violet red"
|
||||
msgid "Pale violet red"
|
||||
msgstr "淡紫羅蘭紅"
|
||||
|
||||
# AI Translated
|
||||
@@ -32853,8 +32862,7 @@ 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"
|
||||
msgid "Electric blue"
|
||||
msgstr "電光藍"
|
||||
|
||||
# AI Translated
|
||||
@@ -32946,9 +32954,8 @@ 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 "達爾馬提亞黃"
|
||||
msgid "Daffodil yellow"
|
||||
msgstr "水仙黃"
|
||||
|
||||
# AI Translated
|
||||
msgid "Brown beige"
|
||||
@@ -33296,9 +33303,8 @@ 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 "辣椒紅素紫"
|
||||
msgid "Capri blue"
|
||||
msgstr "卡布里藍"
|
||||
|
||||
# AI Translated
|
||||
msgid "Ocean blue"
|
||||
@@ -33449,8 +33455,8 @@ msgid "Silver grey"
|
||||
msgstr "銀灰"
|
||||
|
||||
# AI Translated
|
||||
msgid "Olivestone"
|
||||
msgstr "橄欖石色"
|
||||
msgid "Olive grey"
|
||||
msgstr "橄欖灰"
|
||||
|
||||
# AI Translated
|
||||
msgid "Moss grey"
|
||||
@@ -34226,13 +34232,25 @@ msgstr "從「我的紋理」移除"
|
||||
msgid "Built-in"
|
||||
msgstr "內建"
|
||||
|
||||
# AI Translated
|
||||
msgid "My textures"
|
||||
msgstr "我的紋理"
|
||||
|
||||
# AI Translated
|
||||
msgid "No textures found."
|
||||
msgstr "找不到紋理。"
|
||||
|
||||
# AI Translated
|
||||
msgid "My textures"
|
||||
msgstr "我的紋理"
|
||||
msgid "Texture libraries"
|
||||
msgstr "紋理庫"
|
||||
|
||||
# AI Translated
|
||||
msgid "Explore more texture libraries"
|
||||
msgstr "探索更多紋理庫"
|
||||
|
||||
# AI Translated
|
||||
msgid "Opens OrcaCloud in the Home page to browse for plugins."
|
||||
msgstr "在首頁中開啟 OrcaCloud,瀏覽外掛。"
|
||||
|
||||
# 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."
|
||||
@@ -36928,6 +36946,10 @@ msgstr "指令碼"
|
||||
msgid "Slicing Pipeline"
|
||||
msgstr "切片管線"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource Texture"
|
||||
msgstr "資源紋理"
|
||||
|
||||
# AI Translated
|
||||
msgid "The plugin's configuration UI was empty. Showing the default editor."
|
||||
msgstr "外掛的設定介面為空。將顯示預設編輯器。"
|
||||
@@ -37075,6 +37097,30 @@ msgstr "外掛目錄同時包含 .py 和 .whl 進入點檔案"
|
||||
msgid "Plugin directory does not contain a .py or .whl entry file"
|
||||
msgstr "外掛目錄不包含 .py 或 .whl 進入點檔案"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory is not set"
|
||||
msgstr "未設定資源紋理目錄"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory could not be resolved"
|
||||
msgstr "無法解析資源紋理目錄"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture path is not a directory"
|
||||
msgstr "資源紋理路徑不是目錄"
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin folder could not be resolved"
|
||||
msgstr "無法解析外掛資料夾"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory is outside the plugin folder"
|
||||
msgstr "資源紋理目錄位於外掛資料夾之外"
|
||||
|
||||
# AI Translated
|
||||
msgid "Resource texture directory could not be read"
|
||||
msgstr "無法讀取資源紋理目錄"
|
||||
|
||||
# AI Translated
|
||||
#, boost-format
|
||||
msgid "Slicing pipeline plugin '%1%' error: %2%"
|
||||
@@ -38049,6 +38095,41 @@ msgstr ""
|
||||
"避免翹曲\n"
|
||||
"您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。"
|
||||
|
||||
# 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
|
||||
# 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 "Olivestone"
|
||||
#~ msgstr "橄欖石色"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Available anywhere in the window, even while typing in a text field."
|
||||
#~ msgstr "在視窗中任何位置皆可使用,即使正在文字欄位中輸入也可以。"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Global shortcuts also apply while typing."
|
||||
#~ msgstr "全域快速鍵在輸入文字時也會生效。"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Solid"
|
||||
#~ msgstr "純色"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "PaleV violet red"
|
||||
#~ 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 "電光藍"
|
||||
|
||||
#~ msgid "Please choose the filament color"
|
||||
#~ msgstr "請選擇線材顏色"
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ const cssColors = [
|
||||
{hex: "#800080", name: "Purple"},
|
||||
{hex: "#663399", name: "Rebecca purple"},
|
||||
{hex: "#C71585", name: "Medium violet red"},
|
||||
{hex: "#DB7093", name: "PaleV violet red"},
|
||||
{hex: "#DB7093", name: "Pale violet red"},
|
||||
{hex: "#FF1493", name: "Deep pink"},
|
||||
{hex: "#FF69B4", name: "Hot pink"},
|
||||
{hex: "#FFB6C1", name: "Light pink"},
|
||||
@@ -193,7 +193,7 @@ const palettes = {
|
||||
{hex: "#40E0D0", name: "Turquoise bay"},
|
||||
{hex: "#2EBDEF", name: "Sky over reef"},
|
||||
{hex: "#87CEEB", name: "Shallow sky"},
|
||||
{hex: "#1E90FF", name: "Electric bel"},
|
||||
{hex: "#1E90FF", name: "Electric blue"},
|
||||
{hex: "#4169E1", name: "Dolphin"},
|
||||
{hex: "#0000CD", name: "Ocean depths"},
|
||||
{hex: "#191970", name: "Whale"},
|
||||
@@ -219,7 +219,7 @@ const palettes = {
|
||||
{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: "#FDD185", name: "1007 Daffodil yellow"},
|
||||
{hex: "#8B7D6B", name: "1011 Brown beige"},
|
||||
{hex: "#F5DB50", name: "1012 Lemon yellow"},
|
||||
{hex: "#F3E5AB", name: "1013 Oyster white"},
|
||||
@@ -318,7 +318,7 @@ const palettes = {
|
||||
{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: "#1B5583", name: "5019 Capri blue"},
|
||||
{hex: "#04749F", name: "5020 Ocean blue"},
|
||||
{hex: "#009AAA", name: "5021 Water blue"},
|
||||
{hex: "#1A3D5F", name: "5022 Night blue"},
|
||||
@@ -366,7 +366,7 @@ const palettes = {
|
||||
{hex: "#00A550", name: "6039 Mint green"},
|
||||
{hex: "#7D7D7D", name: "7000 Squirrel grey"},
|
||||
{hex: "#A8A9AD", name: "7001 Silver grey"},
|
||||
{hex: "#6F7368", name: "7002 Olivestone"},
|
||||
{hex: "#6F7368", name: "7002 Olive grey"},
|
||||
{hex: "#8F9080", name: "7003 Moss grey"},
|
||||
{hex: "#8E9291", name: "7004 Signal grey"},
|
||||
{hex: "#8B8788", name: "7005 Mouse grey"},
|
||||
|
||||
@@ -303,10 +303,12 @@ nlohmann::json color_picker_ui_strings()
|
||||
return {
|
||||
{"Color Picker", _u8L("Color Picker")},
|
||||
{"Basic Colors", _u8L("Basic Colors")},
|
||||
{"Orca Palette", _u8L("Orca Palette")},// TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
{"RAL Classic", _u8L("RAL Classic")}, // TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
// TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
|
||||
{"Orca Palette", _u8L("Orca Palette")},
|
||||
// TRN: Keep the standard/brand name "RAL" unchanged.
|
||||
{"RAL Classic", _u8L("RAL Classic")},
|
||||
{"Gradients", _u8L("Gradients")},
|
||||
{"Solid", _u8L("Solid")},
|
||||
{"Solid", _u8L_CONTEXT("Solid", "Color picker")},
|
||||
{"Gradient", _u8L("Gradient")},
|
||||
{"Gradient start", _u8L("Gradient start")},
|
||||
{"Gradient end", _u8L("Gradient end")},
|
||||
@@ -440,7 +442,7 @@ nlohmann::json color_picker_ui_strings()
|
||||
{"Purple", _u8L("Purple")},
|
||||
{"Rebecca purple", _u8L("Rebecca purple")},
|
||||
{"Medium violet red", _u8L("Medium violet red")},
|
||||
{"PaleV violet red", _u8L("PaleV violet red")},
|
||||
{"Pale violet red", _u8L("Pale violet red")},
|
||||
{"Deep pink", _u8L("Deep pink")},
|
||||
{"Hot pink", _u8L("Hot pink")},
|
||||
{"Light pink", _u8L("Light pink")},
|
||||
@@ -496,7 +498,7 @@ nlohmann::json color_picker_ui_strings()
|
||||
{"Turquoise bay", _u8L("Turquoise bay")},
|
||||
{"Sky over reef", _u8L("Sky over reef")},
|
||||
{"Shallow sky", _u8L("Shallow sky")},
|
||||
{"Electric bel", _u8L("Electric bel")},
|
||||
{"Electric blue", _u8L("Electric blue")},
|
||||
{"Dolphin", _u8L("Dolphin")},
|
||||
{"Ocean depths", _u8L("Ocean depths")},
|
||||
{"Whale", _u8L("Whale")},
|
||||
@@ -519,7 +521,7 @@ nlohmann::json color_picker_ui_strings()
|
||||
{"Golden yellow", _u8L("Golden yellow")},
|
||||
{"Honey yellow", _u8L("Honey yellow")},
|
||||
{"Maize yellow", _u8L("Maize yellow")},
|
||||
{"Dalmatian yellow", _u8L("Dalmatian yellow")},
|
||||
{"Daffodil yellow", _u8L("Daffodil yellow")},
|
||||
{"Brown beige", _u8L("Brown beige")},
|
||||
{"Lemon yellow", _u8L("Lemon yellow")},
|
||||
{"Oyster white", _u8L("Oyster white")},
|
||||
@@ -606,7 +608,7 @@ nlohmann::json color_picker_ui_strings()
|
||||
{"Pigeon blue", _u8L("Pigeon blue")},
|
||||
{"Traffic blue", _u8L("Traffic blue")},
|
||||
{"Turquoise blue", _u8L("Turquoise blue")},
|
||||
{"Capsanthin violet", _u8L("Capsanthin violet")},
|
||||
{"Capri blue", _u8L("Capri blue")},
|
||||
{"Ocean blue", _u8L("Ocean blue")},
|
||||
{"Water blue", _u8L("Water blue")},
|
||||
{"Night blue", _u8L("Night blue")},
|
||||
@@ -644,7 +646,7 @@ nlohmann::json color_picker_ui_strings()
|
||||
{"Luminous green", _u8L("Luminous green")},
|
||||
{"Squirrel grey", _u8L("Squirrel grey")},
|
||||
{"Silver grey", _u8L("Silver grey")},
|
||||
{"Olivestone", _u8L("Olivestone")},
|
||||
{"Olive grey", _u8L("Olive grey")},
|
||||
{"Moss grey", _u8L("Moss grey")},
|
||||
{"Signal grey", _u8L("Signal grey")},
|
||||
{"Mouse grey", _u8L("Mouse grey")},
|
||||
|
||||
@@ -5279,7 +5279,7 @@ void TabPrinter::build_fff()
|
||||
option.opt.width = Field::def_width_wider();
|
||||
option.opt.tooltip = L("Select the network agent implementation for printer communication. "
|
||||
"Available agents are registered at startup.");
|
||||
optgroup->append_single_option_line(option);
|
||||
optgroup->append_single_option_line(option, "printer_basic_information_advanced#printer-agent");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user