diff --git a/ROADMAP.md b/ROADMAP.md index 46c0fd29..688fa18d 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -2,7 +2,7 @@ **Stage: alpha** · next: beta, ~26 points and ~162–292 h away (one Opus 5.5 agent; ~33–67 h wall-clock with 5 agents) -> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-14 · **Change:** minor (recent files as cards with thumbnails on the home screen; community fixes: lost images reported on loading (#207), SVG import budgets (#190), Leptos code (#223), full screen (#227), server snapshots readable again (#188), owner-only preferences (#200), ruzstd 0.9.1 (#182), layer cycle repair (#205), batch rollback, Direct3D 12 on Windows, plugin metering (#192); vector edit mode regions: hover hatch, selection and drag; SVG/PDF exports refuse over-depth documents (#208); bounded MCP/control framing, connections and queues (#201); plugin log limits (#191); live-session revert guard (#198); attached MCP no longer replays after a lost reply (#194); repeat command recursion fix; the Layout panel's constrain-proportions link scales the other side, #220; core editor leftovers: component playground, auto gap handles, variables inside styles, inner shadows and background blur on groups, command-made text readable on dark pages, a one-step frame/group convert, delays on mouse triggers and manual overlay offsets, wrapped-line alignment; `.fig` export: instance sizes, variables with modes, shared styles, variable-width strokes; starter templates, a Templates tab and Getting started tips on the home screen; your online files; everyday editing partials: number fields, outline options, Hide when publishing, cursors, panel widths, dark pages; sharing with a join code; text box sizes measured against documents re-saved by other software; live sessions per document; .fig export checked by opening written files in other software; a public figcraft-server: open hosting, owner tokens, per-address limits, idle expiry, moderation, install.sh; experimental .fig export; keyboard shortcut parity suite and bindings; Simplified Chinese draft catalog; Latin American Spanish overlay; prototyping tail: gamepad triggers, widgets in prototypes, mode lookups; plugin directory on figcraft-server; Japanese and Korean draft catalogs and CJK UI fonts; plugin widgets and the plugin panel tail; French, German and Brazilian Portuguese draft catalogs; cursor chat and spotlight in live sessions; layers and assets panels behaviour suite and fixes; vector multi-edit and edit tail; dev resources links; extended collections tail; branch version history and finer list merges; headline percentages recomputed from the area table: feature breadth ~84%, core ~94%, mainstream ~50%; text lists, hanging punctuation and decoration styles; comments and version history behaviour suite and fixes; canvas navigation, guides and grids behaviour suite and fixes; export and inspect behaviour suite and fixes; .fig import: editable vector networks and more layer kinds; shapes and vector behaviour suite and fixes; paint and effects behaviour suite and fixes; frames, groups, sections and masks behaviour suite and fixes; styles and variables behaviour suite and fixes; prototyping behaviour suite and fixes; components behaviour suite and fixes; embedded image colour profiles; layers panel keyboard: F2 rename, Shift+F10 context menu, keyboard box selection, 10k-layer QA; per-side stroke weight variables; text behaviour suite: CJK line breaking, metrics, vertical trim; selection and transform behaviour suite and fixes; `.fig` import, best effort; Windows QA pass with eight fixes; auto layout behaviour suite and fixes; Display P3: gamut warning and soft-proof (true P3 blocked upstream); several windows; localization layer with a draft Spanish catalog; hosting figcraft-server: wss in the desktop app, server releases, deployment guide; plugin panels and settings; canvas fixes: boolean hit testing on the result, group drags, frame outlines and slices; code connect; stretch and scatter brushes, pen pressure; text on a path and pattern fills; team libraries on the server and swap library; branches: create, update from main, review and merge; animated GIF fills and TIFF images; Open recent, outlines for the selection and mask outlines: menu breadth 100%; extended collections, variables import/export, gradient stop and variant bindings; feature breadth ~80%; ready ~49%) · **Target:** Figma Design (desktop app 126.10.7) +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-15 · **Change:** minor (Czech draft catalog; recent files as cards with thumbnails on the home screen; community fixes: lost images reported on loading (#207), SVG import budgets (#190), Leptos code (#223), full screen (#227), server snapshots readable again (#188), owner-only preferences (#200), ruzstd 0.9.1 (#182), layer cycle repair (#205), batch rollback, Direct3D 12 on Windows, plugin metering (#192); vector edit mode regions: hover hatch, selection and drag; SVG/PDF exports refuse over-depth documents (#208); bounded MCP/control framing, connections and queues (#201); plugin log limits (#191); live-session revert guard (#198); attached MCP no longer replays after a lost reply (#194); repeat command recursion fix; the Layout panel's constrain-proportions link scales the other side, #220; core editor leftovers: component playground, auto gap handles, variables inside styles, inner shadows and background blur on groups, command-made text readable on dark pages, a one-step frame/group convert, delays on mouse triggers and manual overlay offsets, wrapped-line alignment; `.fig` export: instance sizes, variables with modes, shared styles, variable-width strokes; starter templates, a Templates tab and Getting started tips on the home screen; your online files; everyday editing partials: number fields, outline options, Hide when publishing, cursors, panel widths, dark pages; sharing with a join code; text box sizes measured against documents re-saved by other software; live sessions per document; .fig export checked by opening written files in other software; a public figcraft-server: open hosting, owner tokens, per-address limits, idle expiry, moderation, install.sh; experimental .fig export; keyboard shortcut parity suite and bindings; Simplified Chinese draft catalog; Latin American Spanish overlay; prototyping tail: gamepad triggers, widgets in prototypes, mode lookups; plugin directory on figcraft-server; Japanese and Korean draft catalogs and CJK UI fonts; plugin widgets and the plugin panel tail; French, German and Brazilian Portuguese draft catalogs; cursor chat and spotlight in live sessions; layers and assets panels behaviour suite and fixes; vector multi-edit and edit tail; dev resources links; extended collections tail; branch version history and finer list merges; headline percentages recomputed from the area table: feature breadth ~84%, core ~94%, mainstream ~50%; text lists, hanging punctuation and decoration styles; comments and version history behaviour suite and fixes; canvas navigation, guides and grids behaviour suite and fixes; export and inspect behaviour suite and fixes; .fig import: editable vector networks and more layer kinds; shapes and vector behaviour suite and fixes; paint and effects behaviour suite and fixes; frames, groups, sections and masks behaviour suite and fixes; styles and variables behaviour suite and fixes; prototyping behaviour suite and fixes; components behaviour suite and fixes; embedded image colour profiles; layers panel keyboard: F2 rename, Shift+F10 context menu, keyboard box selection, 10k-layer QA; per-side stroke weight variables; text behaviour suite: CJK line breaking, metrics, vertical trim; selection and transform behaviour suite and fixes; `.fig` import, best effort; Windows QA pass with eight fixes; auto layout behaviour suite and fixes; Display P3: gamut warning and soft-proof (true P3 blocked upstream); several windows; localization layer with a draft Spanish catalog; hosting figcraft-server: wss in the desktop app, server releases, deployment guide; plugin panels and settings; canvas fixes: boolean hit testing on the result, group drags, frame outlines and slices; code connect; stretch and scatter brushes, pen pressure; text on a path and pattern fills; team libraries on the server and swap library; branches: create, update from main, review and merge; animated GIF fills and TIFF images; Open recent, outlines for the selection and mask outlines: menu breadth 100%; extended collections, variables import/export, gradient stop and variant bindings; feature breadth ~80%; ready ~49%) · **Target:** Figma Design (desktop app 126.10.7) FigCraft is a clean-room, open-source, pure-Rust reimplementation of the Figma design workflow, native on macOS, Windows, Linux and FreeBSD and in the browser, fully drivable by agents through @@ -50,7 +50,7 @@ against real Figma documents. Ready-for-real-work is ~53%, inside alpha's ~40– ~75% **and** reliable `.fig` import: the `.fig` import's tail (5–10 h), a real-file corpus with measured fidelity (15–30 h), the interaction pass (25–40 h of the 40–60), core depth to ~80% (40–75 h), basic multiplayer on the landed core (30–55 h), stability and platform QA (20–40 h), a partial GPU path (15–30 h); -native speakers' reviews of the six language drafts need people. +native speakers' reviews of the language drafts need people. ## By dimension @@ -63,7 +63,7 @@ native speakers' reviews of the six language drafts need people. | Stability | 55% | 20–40 | [gaps](docs/gaps.md) | | Performance | 60% | 30–60 | [hardware-parity](docs/hardware-parity.md) | | Hardware | 60% | 10–21 | [hardware-parity](docs/hardware-parity.md) | -| Localization | 39% (layer; English; Spanish with a Latin American overlay, French, German, Brazilian Portuguese, Japanese, Korean, Simplified Chinese drafts; CJK UI fonts) | 29–51 | [localization-parity](docs/localization-parity.md) | +| Localization | 39% (layer; English; Spanish with a Latin American overlay, French, German, Brazilian Portuguese, Japanese, Korean, Simplified Chinese and Czech drafts; CJK UI fonts) | 29–51 | [localization-parity](docs/localization-parity.md) | | Platforms | 75% | 10–20 | [hardware-parity](docs/hardware-parity.md) | | Ecosystem / plugins | 38% (own WASM plugins with panels, settings and widgets; a self-hosted plugin directory) | 8–26 | [gaps](docs/gaps.md) | | AI features | 0% | 30–60 | [gaps](docs/gaps.md) | @@ -99,21 +99,22 @@ native speakers' reviews of the six language drafts need people. | Language | Code | Strings | Status | |---|---|---|---| | English | en | 100% | full | -| Simplified Chinese | zh-Hans | 100% | draft (needs native review) | +| Simplified Chinese | zh-Hans | 95% | draft (needs native review) | | Spanish | es, es-419 | 100% (es-419: an overlay of 98 entries) | draft (needs native review) | | Hindi | hi | 0% | none | | Arabic | ar | 0% | none | -| French | fr | 100% | draft (needs native review) | -| Portuguese (Brazil) | pt-BR | 100% | draft (needs native review) | +| French | fr | 95% | draft (needs native review) | +| Portuguese (Brazil) | pt-BR | 95% | draft (needs native review) | | Indonesian | id | 0% | none | -| Japanese | ja | 100% | draft (needs native review) | -| German | de | 100% | draft (needs native review) | -| Korean | ko | 100% | draft (needs native review) | +| Japanese | ja | 95% | draft (needs native review) | +| German | de | 95% | draft (needs native review) | +| Korean | ko | 95% | draft (needs native review) | | Vietnamese | vi | 0% | none | +| Czech | cs | 100% (2,165 entries) | draft (needs native review) | -No other languages. Figma ships English, Japanese, Korean, French, German, Spanish and Portuguese +Figma ships English, Japanese, Korean, French, German, Spanish and Portuguese (Brazil); FigCraft has the localization layer, English and Spanish (Spain and Latin America), -French, German, Brazilian Portuguese, Japanese, Korean and Simplified Chinese drafts (Preferences ▸ +French, German, Brazilian Portuguese, Japanese, Korean, Simplified Chinese and Czech drafts (Preferences ▸ Language; Traditional Chinese has no catalog; CJK UI text uses an installed CJK font, loaded only when needed; adding a language: [`docs/translating.md`](docs/translating.md)). Document text in any script (bidi, Arabic shaping, @@ -126,7 +127,7 @@ Ranked; detail and milestones in [`docs/roadmap.md`](docs/roadmap.md). 1. `.fig` import's tail: fixes from real files, connector labels, table cells, filled areas with their own fills (the best-effort import, editable vector networks, the other layer kinds and variable prototype actions landed 2026-10-11): 5–10 h; then checking the rest of the experimental `.fig` export (landed 2026-10-12; written files open and draw in other software) on effects, images, prototypes and real files: 5–15 h. 2. Real-file corpus and measured fidelity: 15–30 h. 3. Tool-by-tool interaction pass against Figma: 40–60 h. -4. Languages: native reviews of the es, fr, de, pt-BR, ja and ko drafts (people), Latin American Spanish (1–2 h), then Simplified Chinese (3–5 h). +4. Languages: native reviews of the es, fr, de, pt-BR, ja, ko, zh-Hans and cs drafts and the es-419 overlay (people), then the other key languages. 5. Multiplayer (M9): accounts and teams on top of the live sessions and the standalone server (transport, hosting, invite links that open the app, document sync, presence with remote text carets, cursor chat and spotlight, per-user undo, reconnect with offline edits, collision-free ids for styles, variables and comments, the browser client, `figcraft-server` with persistence and share links to edit or view, team libraries on the server landed): 42–84 h. ## Progress log @@ -312,6 +313,7 @@ Ranked; detail and milestones in [`docs/roadmap.md`](docs/roadmap.md). | Date | Change | Summary | |---|---|---| +| 2026-10-15 | minor | Czech draft catalog: 1,577 UI keys, 557 command labels and 31 menu wordings (2,165 entries), marked as awaiting native review and kept out of `COMPLETE`. The build discovers `cs.toml` automatically; System resolves cs and cs-CZ without font changes. Singular uses `n == 1`; count-neutral `other` forms cover 0, 2–4 and 5+. Localization grades and estimates unchanged. | | 2026-10-14 | minor | Home screen recent files as cards (M7): each card shows the picture its file carries on its first page's colour, the file's icon, name and "Edited ... ago"; sort by name, creation or last change either way; a table view; a click selects, a double-click or Enter opens, arrow keys move; Open, Show in folder and Remove from recents on right-click. Numbers unchanged. | | 2026-10-14 | minor | Lost images reported on loading (#207): a `.figcraft` file whose image member is damaged, too large or missing no longer loads in silence; each lost image (up to 20, then a count) is listed in `repairs` on `file.open` with its hash and the reason, and the app shows it as a toast. Saving still writes the file without the lost images. Numbers unchanged | | 2026-10-14 | minor | SVG import budgets (#190): gzipped SVG is unpacked by FigCraft within 64 MiB before parsing (it was unpacked without a limit), so the nesting check sees the real document; SVG documents embedded in `` data URIs share one 32 MiB budget and at most 4 levels, and one past a budget is left out. Linked files stay unread. Numbers unchanged | diff --git a/contributors/people.toml b/contributors/people.toml index e61cfd31..88d5b64a 100644 --- a/contributors/people.toml +++ b/contributors/people.toml @@ -16,3 +16,6 @@ # # To remove your names, delete your entry (or set fields empty) in a PR. The next # contributors.py run, and the next build, drop them. + +[people.Losminek] +sync_github_name = true diff --git a/crates/engine/src/cmd/view.rs b/crates/engine/src/cmd/view.rs index 6135e5df..77ff03c4 100644 --- a/crates/engine/src/cmd/view.rs +++ b/crates/engine/src/cmd/view.rs @@ -369,18 +369,24 @@ pub fn specs() -> Vec { Ok(json!({"url": s.prefs.publish_server, "default": crate::live::DEFAULT_SERVER})) } ), - spec!("pref.language", "Interface language", "{language: system|en|es|es-419|fr|de|pt-BR|ja|ko|zh-Hans|…; else English}", false, |s, p| { - let lang = req_string("pref.language", p, "language")?; - let lang = lang.trim(); - // A BCP 47-style tag ("es", "pt-BR", "zh_Hans") or "system". - let tag = lang.len() <= 35 - && lang.split(['-', '_']).all(|part| !part.is_empty() && part.len() <= 8 && part.chars().all(|c| c.is_ascii_alphanumeric())); - if !tag { - return Err(bad("pref.language", format!("`{lang}` is not a language code"))); + spec!( + "pref.language", + "Interface language", + "{language: system|en|cs|es|es-419|fr|de|pt-BR|ja|ko|zh-Hans|…; else English}", + false, + |s, p| { + let lang = req_string("pref.language", p, "language")?; + let lang = lang.trim(); + // A BCP 47-style tag ("es", "pt-BR", "zh_Hans") or "system". + let tag = lang.len() <= 35 + && lang.split(['-', '_']).all(|part| !part.is_empty() && part.len() <= 8 && part.chars().all(|c| c.is_ascii_alphanumeric())); + if !tag { + return Err(bad("pref.language", format!("`{lang}` is not a language code"))); + } + s.prefs.language = lang.to_string(); + Ok(json!({"language": s.prefs.language})) } - s.prefs.language = lang.to_string(); - Ok(json!({"language": s.prefs.language})) - }), + ), spec!("app.preferences", "Preferences", "{}", false, |s, _| ui(s, "dialog.preferences")), spec!("app.actions", "Actions", "{}", false, |s, _| ui(s, "palette.actions")), spec!("help.shortcuts", "Keyboard shortcuts", "{}", false, |s, _| ui(s, "panel.shortcuts")), diff --git a/crates/ui-egui/locales/cs.toml b/crates/ui-egui/locales/cs.toml new file mode 100644 index 00000000..f54e8ade --- /dev/null +++ b/crates/ui-egui/locales/cs.toml @@ -0,0 +1,2176 @@ +# Czech interface catalog. Machine-drafted; awaiting native review. +# Plurals use count-neutral other forms for Czech 0, 2–4 and 5+. +[meta] +name = "Čeština" +status = "draft — needs native review" + +[ui] +"% of all commits" = "% všech commitů" +"(no longer published)" = "(již nepublikováno)" +"({n} warnings: some entries were skipped)" = { one = "({n} varování: některé položky byly přeskočeny)", other = "(Varování: {n}; některé položky byly přeskočeny)" } +"+ Create variable" = "+ Vytvořit proměnnou" +".fig (experimental)" = ".fig (experimentální)" +"1…9, 0" = "1…9, 0" +"@{login}: {prs} PRs, {commits} commits, +{added} / −{deleted} lines (Δ {delta}), +{bin_added} / −{bin_deleted} binary assets, {first} – {last}" = "@{login}: PR: {prs}, commity: {commits}, +{added} / −{deleted} řádků (Δ {delta}), +{bin_added} / −{bin_deleted} binárních souborů, {first} – {last}" +"A collection of this file with these modes and variables: override their values per mode and add variables of its own" = "Kolekce tohoto souboru s těmito režimy a proměnnými: přepište jejich hodnoty pro jednotlivé režimy a přidejte vlastní proměnné" +"A responsive product page: hero, features, figures, a quote and a footer" = "Responzivní produktová stránka: úvodní blok, funkce, čísla, citace a zápatí" +"A spring plays until it settles: its mass, stiffness and damping set how long" = "Pružina se pohybuje až do ustálení: délku určuje její hmotnost, tuhost a tlumení" +"A title, an agenda, a big figure, a chart and a closing slide" = "Titulní snímek, program, výrazné číslo, graf a závěrečný snímek" +"A to Z" = "Od A do Z" +"About" = "O aplikaci" +"About FigCraft" = "O aplikaci FigCraft" +"About this server" = "O tomto serveru" +"Action" = "Akce" +"Actions" = "Akce" +"Actions for {name}" = "Akce pro {name}" +"Actions…" = "Akce…" +"Active" = "Aktivní" +"Actual size (100%)" = "Skutečná velikost (100 %)" +"Add a category" = "Přidat kategorii" +"Add a comment" = "Přidat komentář" +"Add a description" = "Přidat popis" +"Add a frame (F) or a shape (R) to get started" = "Začněte přidáním rámce (F) nebo tvaru (R)" +"Add a layer or component to tile first" = "Nejprve přidejte vrstvu nebo komponentu k opakování" +"Add a note for developers" = "Přidat poznámku pro vývojáře" +"Add action" = "Přidat akci" +"Add actions for when no condition holds" = "Přidat akce pro případ, kdy neplatí žádná podmínka" +"Add an annotation for developers" = "Přidat anotaci pro vývojáře" +"Add another condition" = "Přidat další podmínku" +"Add auto layout" = "Přidat automatické rozvržení" +"Add background behind overlay" = "Přidat pozadí za překryv" +"Add content to this slot" = "Přidat obsah do tohoto slotu" +"Add dev resource" = "Přidat zdroj pro vývojáře" +"Add effect" = "Přidat efekt" +"Add export setting" = "Přidat nastavení exportu" +"Add fill" = "Přidat výplň" +"Add interaction" = "Přidat interakci" +"Add layout grid" = "Přidat mřížku rozvržení" +"Add library" = "Přidat knihovnu" +"Add library file…" = "Přidat soubor knihovny…" +"Add max height" = "Přidat maximální výšku" +"Add max width" = "Přidat maximální šířku" +"Add min height" = "Přidat minimální výšku" +"Add min width" = "Přidat minimální šířku" +"Add mode" = "Přidat režim" +"Add new page" = "Přidat novou stránku" +"Add or update collections from a variables JSON" = "Přidat nebo aktualizovat kolekce ze souboru JSON s proměnnými" +"Add properties to make instances configurable" = "Přidejte vlastnosti pro nastavení instancí" +"Add reaction" = "Přidat reakci" +"Add starting point" = "Přidat počáteční bod" +"Add stroke" = "Přidat tah" +"Add variant" = "Přidat variantu" +"Add variant with a new value" = "Přidat variantu s novou hodnotou" +"Added" = "Přidáno" +"Added the library \"{name}\"" = "Přidána knihovna „{name}“" +"Adjust" = "Upravit" +"Adjustment presets" = "Předvolby úprav" +"Advanced" = "Pokročilé" +"Advanced stroke" = "Pokročilé nastavení tahu" +"After delay" = "Po prodlevě" +"After delay {ms}ms" = "Po prodlevě {ms} ms" +"Align" = "Zarovnat" +"Align bottom" = "Zarovnat dolů" +"Align center" = "Zarovnat na střed" +"Align horizontal centers" = "Zarovnat vodorovné středy" +"Align left" = "Zarovnat vlevo" +"Align middle" = "Zarovnat doprostřed" +"Align right" = "Zarovnat vpravo" +"Align text baselines" = "Zarovnat účaří textu" +"Align top" = "Zarovnat nahoru" +"Align vertical centers" = "Zarovnat svislé středy" +"Alignment" = "Zarovnání" +"All" = "Vše" +"All categories" = "Všechny kategorie" +"All comments" = "Všechny komentáře" +"All components" = "Všechny komponenty" +"All fonts" = "Všechna písma" +"All supported properties" = "Všechny podporované vlastnosti" +"All variables" = "Všechny proměnné" +"Alpha" = "Alfa" +"Alphabetical" = "Abecedně" +"Alt+drag" = "Alt+tažení" +"An analytics screen on a grid: figures, charts drawn from vectors and a table" = "Analytický přehled na mřížce: čísla, vektorové grafy a tabulka" +"An invite link that opens FigCraft and joins" = "Odkaz s pozvánkou, který otevře FigCraft a připojí k relaci" +"Anchor" = "Kotva" +"Android" = "Android" +"Angular" = "Úhlový" +"Animation" = "Animace" +"Annotations" = "Anotace" +"Annotations shown on the canvas" = "Anotace zobrazené na plátně" +"Another server, or one that needs its key. The usual server is set in Preferences." = "Jiný server nebo server vyžadující klíč. Výchozí server se nastavuje v předvolbách." +"Any status" = "Libovolný stav" +"Anyone on your network with this code can edit the file, while this app stays open." = "Kdokoli ve vaší síti s tímto kódem může soubor upravovat, dokud tato aplikace zůstane otevřená." +"Anyone with the edit link can change the file; the view link only lets people look. The links carry their secrets: share them like passwords. `figcraft-server links` makes more and revokes them." = "Kdokoli s odkazem pro úpravy může soubor měnit; odkaz pro prohlížení umožňuje pouze prohlížení. Odkazy obsahují tajné údaje: sdílejte je jako hesla. Příkaz `figcraft-server links` vytváří další odkazy a odvolává je." +"Anyone with this code can edit the file." = "Kdokoli s tímto kódem může soubor upravovat." +"Anyone with this code can look at the file, not change it." = "Kdokoli s tímto kódem může soubor prohlížet, ale nemůže ho měnit." +"Appearance" = "Vzhled" +"Apply a component property" = "Použít vlastnost komponenty" +"Apply variable" = "Použít proměnnou" +"Apply variable to text" = "Použít proměnnou na text" +"Apply variable to visibility" = "Použít proměnnou na viditelnost" +"Apps" = "Aplikace" +"Apr" = "dubna" +"Arc" = "Oblouk" +"Arc ratio" = "Poměr oblouku" +"Arc start" = "Začátek oblouku" +"Arc sweep" = "Rozsah oblouku" +"Archive" = "Archivovat" +"Archived" = "Archivováno" +"Arrange" = "Uspořádat" +"Arrow" = "Šipka" +"As typed" = "Podle zadání" +"Asking the server…" = "Dotazování serveru…" +"Assets" = "Zdroje" +"Aug" = "srpna" +"Auto" = "Automaticky" +"Auto (space around)" = "Automaticky (mezery kolem)" +"Auto (space between)" = "Automaticky (mezery mezi)" +"Auto (space evenly)" = "Automaticky (stejné mezery)" +"Auto ({mode})" = "Automaticky ({mode})" +"Auto columns" = "Automatické sloupce" +"Auto gap" = "Automatický rozestup" +"Auto height" = "Automatická výška" +"Auto layout" = "Automatické rozvržení" +"Auto rows" = "Automatické řádky" +"Auto width" = "Automatická šířka" +"Back to the FigCraft server" = "Zpět na server FigCraft" +"Back to the font's value" = "Zpět na hodnotu písma" +"Back" = "Zpět" +"Back to Ready for dev" = "Zpět do stavu Připraveno pro vývoj" +"Back to Ready for dev: the next change compares with how it is now" = "Zpět do stavu Připraveno pro vývoj: další změna se porovná s aktuálním stavem" +"Back to assets" = "Zpět ke zdrojům" +"Back to current" = "Zpět na aktuální" +"Back to styles" = "Zpět ke stylům" +"Back to the canvas from a focused region" = "Zpět na plátno ze zaměřené oblasti" +"Back to the current version" = "Zpět na aktuální verzi" +"Back to the values the font style implies" = "Zpět na hodnoty dané řezem písma" +"Background" = "Pozadí" +"Background blur" = "Rozostření pozadí" +"Basics" = "Základy" +"Before" = "Před" +"Bend" = "Ohnout" +"Bevel" = "Zkosený" +"Binary assets added" = "Přidané binární soubory" +"Binary assets removed" = "Odstraněné binární soubory" +"Black & white" = "Černobílé" +"Bleed" = "Spadávka" +"Bleed marks" = "Značky spadávky" +"Bleed marks need a bleed" = "Značky spadávky vyžadují spadávku" +"Blend" = "Prolnutí" +"Blend mode" = "Režim prolnutí" +"Blue" = "Modrá" +"Blur" = "Rozostření" +"Boolean" = "Logická hodnota" +"Boolean groups" = "Booleovské skupiny" +"Both directions" = "Oba směry" +"Bottom" = "Dole" +"Bottom left radius" = "Poloměr levého dolního rohu" +"Bottom right radius" = "Poloměr pravého dolního rohu" +"Branch" = "Větev" +"Branch archived" = "Větev archivována" +"Branch merged" = "Větev sloučena" +"Branch name" = "Název větve" +"Branch of {file}" = "Větev souboru {file}" +"Branch of {file} · merged or archived" = "Větev souboru {file} · sloučená nebo archivovaná" +"Branch updated from main" = "Větev aktualizována z hlavního souboru" +"Branch {name}" = "Větev {name}" +"Branches" = "Větve" +"Bound to {name}. Click to detach the variable." = "Navázáno na {name}. Kliknutím odpojíte proměnnou." +"Bring forward" = "Přenést o úroveň výš" +"Bring the main file's changes into the branch" = "Přenést změny hlavního souboru do větve" +"Bring to front" = "Přenést do popředí" +"Bristle" = "Štětiny" +"Browse" = "Procházet" +"Brush" = "Štětec" +"Brush rotation jitter" = "Náhodná odchylka natočení štětce" +"Brush scatter" = "Rozptyl štětce" +"Brush size jitter" = "Náhodná odchylka velikosti štětce" +"Brush spacing" = "Rozestup štětce" +"Bulleted list" = "Odrážkový seznam" +"C or Shift+C" = "C nebo Shift+C" +"C or ⇧C" = "C nebo ⇧C" +"CMYK colour" = "Barva CMYK" +"Can view" = "Může prohlížet" +"Checking the server…" = "Kontrola serveru…" +"Clear from this list" = "Vymazat z tohoto seznamu" +"Code or invite link" = "Kód nebo odkaz s pozvánkou" +"Color profile: {name}" = "Barevný profil: {name}" +"Colour and text styles, Light and Dark variables, buttons, inputs and cards" = "Barevné a textové styly, proměnné pro světlý a tmavý režim, tlačítka, vstupní pole a karty" +"CSS custom properties…" = "Vlastní vlastnosti CSS…" +"Can edit" = "Může upravovat" +"Can't read this library: {e}" = "Tuto knihovnu nelze přečíst: {e}" +"Cancel" = "Zrušit" +"Canvas" = "Plátno" +"Canvas stacking" = "Pořadí na plátně" +"Cap height to baseline" = "Od horní hrany verzálek po účaří" +"Case" = "Velikost písmen" +"Case-sensitive forms" = "Tvary podle velikosti písmen" +"Categories" = "Kategorie" +"Center" = "Střed" +"Change alias" = "Změnit alias" +"Change resolved" = "Změna vyřešena" +"Change style" = "Změnit styl" +"Change to" = "Změnit na" +"Change to needs a layer inside a variant" = "Akce Změnit na vyžaduje vrstvu uvnitř varianty" +"Changed" = "Změněno" +"Changed on both sides: keep one" = "Změněno na obou stranách: vyberte jednu" +"Changes on main" = "Změny v hlavním souboru" +"Changes on the branch" = "Změny ve větvi" +"Changes unknown" = "Změny nejsou známy" +"Choose React, Leptos, SwiftUI or Compose above to connect this component to its code." = "Pro propojení této komponenty s jejím kódem vyberte nahoře React, Leptos, SwiftUI nebo Compose." +"Choose another profile to change it." = "Pro změnu vyberte jiný profil." +"Choose collection" = "Vybrat kolekci" +"Choose image" = "Vybrat obrázek" +"Choose mode" = "Vybrat režim" +"Choose variable" = "Vybrat proměnnou" +"Circle" = "Kruh" +"Clear recent" = "Vymazat nedávné" +"Click + to replace mixed content" = "Kliknutím na + nahradíte smíšený obsah" +"Click anywhere on the canvas to leave one." = "Kliknutím kamkoli na plátno přidáte komentář." +"Click or drag to merge · {alt} removes" = "Kliknutím nebo tažením sloučíte · {alt} odečítá" +"Click or drag to remove · {alt} merges" = "Kliknutím nebo tažením odeberete · {alt} slučuje" +"Click to record a key" = "Kliknutím zaznamenáte klávesu" +"Clip content" = "Oříznout obsah" +"Clip to shape" = "Oříznout podle tvaru" +"Close" = "Zavřít" +"Close overlay" = "Zavřít překryv" +"Close preview" = "Zavřít náhled" +"Close tab" = "Zavřít kartu" +"Close version history" = "Zavřít historii verzí" +"Close when clicking outside" = "Zavřít při kliknutí mimo" +"Close without saving" = "Zavřít bez uložení" +"Code" = "Kód" +"Code syntax" = "Syntaxe kódu" +"Collapse" = "Sbalit" +"Collapse panel" = "Sbalit panel" +"Collection" = "Kolekce" +"Collections" = "Kolekce" +"Color" = "Barva" +"Color burn" = "Ztmavit barvy" +"Color dodge" = "Zesvětlit barvy" +"Color format" = "Formát barvy" +"Color profile" = "Barevný profil" +"Color styles" = "Barevné styly" +"Color values in this file are in this color space." = "Hodnoty barev v tomto souboru jsou v tomto barevném prostoru." +"Color variables" = "Barevné proměnné" +"Colour" = "Barva" +"Column" = "Sloupec" +"Column gap" = "Mezera mezi sloupci" +"Column sizes" = "Velikosti sloupců" +"Column span" = "Rozpětí přes sloupce" +"Columns" = "Sloupce" +"Columns {count}" = "Sloupce: {count}" +"Comment" = "Komentář" +"Comments" = "Komentáře" +"Commits" = "Commity" +"Company" = "Společnost" +"Compare changes" = "Porovnat změny" +"Completed" = "Dokončeno" +"Component" = "Komponenta" +"Component name" = "Název komponenty" +"Component property" = "Vlastnost komponenty" +"Component set" = "Sada komponent" +"Component sets" = "Sady komponent" +"Components" = "Komponenty" +"Conditional" = "Podmíněná akce" +"Confetti" = "Konfety" +"Conflicts" = "Konflikty" +"Connect to code" = "Propojit s kódem" +"Connected" = "Připojeno" +"Connected to code: {from}" = "Propojeno s kódem: {from}" +"Connection lost, reconnecting (attempt {attempt})…" = "Spojení ztraceno, opětovné připojování (pokus {attempt})…" +"Constrain proportions" = "Zachovat poměr stran" +"Constraints" = "Omezení" +"Content" = "Obsah" +"Contents hidden" = "Obsah skryt" +"Contents only" = "Pouze obsah" +"Contextual alternates" = "Kontextové alternativy" +"Contrast" = "Kontrast" +"Contributors" = "Přispěvatelé" +"Contributors: {people} · Commits: {commits}" = "Přispěvatelé: {people} · Commity: {commits}" +"Controller" = "Ovladač" +"Cool" = "Studené" +"Copied as CSS" = "Zkopírováno jako CSS" +"Copied as PNG" = "Zkopírováno jako PNG" +"Copied as SVG" = "Zkopírováno jako SVG" +"Copied as text" = "Zkopírováno jako text" +"Copied {value}" = "Zkopírováno: {value}" +"Copy" = "Kopírovat" +"Copy as" = "Kopírovat jako" +"Copy as CSS" = "Kopírovat jako CSS" +"Copy as PNG" = "Kopírovat jako PNG" +"Copy as SVG" = "Kopírovat jako SVG" +"Copy code" = "Kopírovat kód" +"Copy link" = "Kopírovat odkaz" +"Copy the {label}" = "Kopírovat: {label}" +"Copy {value}" = "Kopírovat: {value}" +"Corner radius" = "Poloměr rohu" +"Corner smoothing" = "Vyhlazení rohů" +"Couldn't reach {server}: showing what this computer remembers." = "Server {server} není dostupný: zobrazuje se stav uložený v tomto počítači." +"Count" = "Počet" +"Create" = "Vytvořit" +"Create a variable collection first" = "Nejprve vytvořte kolekci proměnných" +"Create a variable first" = "Nejprve vytvořte proměnnou" +"Create alias" = "Vytvořit alias" +"Create branch" = "Vytvořit větev" +"Create collection" = "Vytvořit kolekci" +"Create component" = "Vytvořit komponentu" +"Create component property" = "Vytvořit vlastnost komponenty" +"Create components, styles or variables to publish them as a library." = "Vytvořte komponenty, styly nebo proměnné a publikujte je jako knihovnu." +"Create property…" = "Vytvořit vlastnost…" +"Create style" = "Vytvořit styl" +"Create style from the selected text" = "Vytvořit styl z vybraného textu" +"Created" = "Vytvořeno" +"Crop" = "Oříznout" +"Crop marks" = "Ořezové značky" +"Ctrl+arrows" = "Ctrl+šipky" +"Ctrl+click" = "Ctrl+kliknutí" +"Ctrl+scroll" = "Ctrl+posouvání" +"Current name" = "Aktuální název" +"Current version" = "Aktuální verze" +"Cursor chat" = "Chat u kurzoru" +"Custom" = "Vlastní" +"Cut" = "Vyjmout" +"Dark" = "Tmavý" +"Darken" = "Ztmavit" +"Dash" = "Čárkování" +"Dashboard" = "Přehled" +"Date created" = "Datum vytvoření" +"Dec" = "prosince" +"Decoration style" = "Styl dekorace" +"Decoration" = "Dekorace" +"Deep select" = "Hloubkový výběr" +"Default" = "Výchozí" +"Default content" = "Výchozí obsah" +"Default value (the top-left variant)" = "Výchozí hodnota (varianta vlevo nahoře)" +"Delay" = "Prodleva" +"Delete" = "Smazat" +"Delete category (its annotations stay)" = "Smazat kategorii (její anotace zůstanou)" +"Delete collection" = "Smazat kolekci" +"Delete group" = "Smazat skupinu" +"Delete mode" = "Smazat režim" +"Delete page" = "Smazat stránku" +"Delete preset" = "Smazat předvolbu" +"Delete property" = "Smazat vlastnost" +"Delete the style (layers keep their values)" = "Smazat styl (vrstvy si zachovají hodnoty)" +"Delete thread" = "Smazat vlákno" +"Delete variable" = "Smazat proměnnou" +"Delete “{name}”? This can't be undone." = "Smazat „{name}“? Tuto akci nelze vrátit zpět." +"Density" = "Hustota" +"Depth" = "Hloubka" +"Describe how and when to use this component" = "Popište, jak a kdy tuto komponentu používat" +"Describe what changed" = "Popište změny" +"Description" = "Popis" +"Description (optional)" = "Popis (nepovinný)" +"Design" = "Návrh" +"Design system starter" = "Základ design systému" +"Desktop" = "Počítač" +"Destination" = "Cíl" +"Detach alias" = "Odpojit alias" +"Detach instance" = "Odpojit instanci" +"Detach property" = "Odpojit vlastnost" +"Detach style" = "Odpojit styl" +"Detach styles" = "Odpojit styly" +"Detach variable" = "Odpojit proměnnou" +"Details" = "Podrobnosti" +"Dev Mode" = "Režim pro vývojáře" +"Dev resources" = "Zdroje pro vývojáře" +"Development" = "Vývoj" +"Device" = "Zařízení" +"Device at 100%" = "Zařízení ve 100 %" +"Diamond" = "Kosočtverec" +"Difference" = "Rozdíl" +"Dimensions" = "Rozměry" +"Direction" = "Směr" +"Disconnect from code" = "Odpojit od kódu" +"Dispersion" = "Rozptyl" +"Display name" = "Zobrazované jméno" +"Dissolve" = "Prolnutí snímků" +"Distribute and tidy" = "Rozmístit a uspořádat" +"Distribute horizontal spacing" = "Rozmístit vodorovné rozestupy" +"Distribute vertical spacing" = "Rozmístit svislé rozestupy" +"Divider" = "Oddělovač" +"Don't truncate" = "Nezkracovat" +"Done" = "Hotovo" +"Done editing" = "Dokončit úpravy" +"Dots" = "Tečky" +"Dotted" = "Tečkovaný" +"Down" = "Dolů" +"Drafts" = "Koncepty" +"Drag the stroke to add a width point" = "Tažením tahu přidáte bod šířky" +"Draw" = "Kreslení" +"Draw a frame" = "Nakreslit rámec" +"Drawing tools" = "Kreslicí nástroje" +"Drop shadow" = "Vržený stín" +"Dual-licensed MIT OR Apache-2.0. Made by the ArtCraft team and community." = "Dvojí licence MIT OR Apache-2.0. Vytvořil tým ArtCraft a komunita." +"Duo" = "Dvojtónové" +"Duplicate" = "Duplikovat" +"Duplicate by dragging" = "Duplikovat tažením" +"Duplicate mode" = "Duplikovat režim" +"Duplicate page" = "Duplikovat stránku" +"Edit" = "Upravit" +"Edit as an expression" = "Upravit jako výraz" +"Edit colour" = "Upravit barvu" +"Edit comment" = "Upravit komentář" +"Edit dev resource" = "Upravit zdroj pro vývojáře" +"Edit link" = "Odkaz pro úpravy" +"Edit link copied" = "Odkaz pro úpravy zkopírován" +"Edit style" = "Upravit styl" +"Edit variable" = "Upravit proměnnou" +"Edit with the builder" = "Upravit pomocí tvorby tvarů" +"Edited {when}" = "Upraveno {when}" +"Effect settings" = "Nastavení efektu" +"Effect styles" = "Styly efektů" +"Effects" = "Efekty" +"Ellipse" = "Elipsa" +"Ellipses" = "Elipsy" +"Else" = "Jinak" +"Else if" = "Jinak pokud" +"Embedded profile" = "Vložený profil" +"Empty" = "Prázdné" +"End" = "Konec" +"End point" = "Koncový bod" +"Ends the session; everyone keeps their copy" = "Ukončí relaci; každý si ponechá svou kopii" +"Enter" = "Enter" +"Enter the address of a figcraft-server and press Browse to see the plugins it offers." = "Zadejte adresu serveru figcraft-server a stisknutím Procházet zobrazte nabízené pluginy." +"Enter to save · Esc to cancel" = "Enter uloží · Esc zruší" +"Eraser" = "Guma" +"Esc" = "Esc" +"Essential" = "Základní" +"Every conflict has a choice." = "Každý konflikt má vybrané řešení." +"Every top-level frame already starts a flow" = "Každý rámec nejvyšší úrovně již zahajuje tok" +"Exact opacity (4 then 5: 45%)" = "Přesné krytí (4 a pak 5: 45 %)" +"Exclude" = "Vyloučit" +"Excluded" = "Vyloučeno" +"Excluded from layout" = "Vyloučeno z rozvržení" +"Excludes" = "Vyloučení" +"Exclusion" = "Vylučovací prolnutí" +"Exit focus view (Esc)" = "Opustit zaměřený pohled (Esc)" +"Expand" = "Rozbalit" +"Export" = "Export" +"Export all" = "Exportovat vše" +"Export frames and layers as PNG, JPG, SVG or PDF" = "Exportovat rámce a vrstvy jako PNG, JPG, SVG nebo PDF" +"Export page as PNG" = "Exportovat stránku jako PNG" +"Export settings" = "Nastavení exportu" +"Export variables" = "Exportovat proměnné" +"Export {name}" = "Exportovat {name}" +"Export {n} layers" = { one = "Exportovat {n} vrstvu", other = "Exportovat vrstvy: {n}" } +"Exported {file}" = "Exportován soubor {file}" +"Exported {name}" = "Exportováno: {name}" +"Exported {name}; {n} kinds of content were left out" = { one = "Exportováno: {name}; vynechán {n} druh obsahu", other = "Exportováno: {name}; vynechané druhy obsahu: {n}" } +"Exported {n} files" = { one = "Exportován {n} soubor", other = "Exportované soubory: {n}" } +"Export…" = "Exportovat…" +"Expose properties to instances" = "Zpřístupnit vlastnosti instancím" +"Exposure" = "Expozice" +"Expression" = "Výraz" +"Extend collection" = "Rozšířit kolekci" +"Extends \"{name}\": overridden values are marked" = "Rozšiřuje „{name}“: přepsané hodnoty jsou označeny" +"Eye" = "Oko" +"F" = "F" +"Fade" = "Vyblednutí" +"False" = "Nepravda" +"Feb" = "února" +"Fetching from the server…" = "Stahování ze serveru…" +"File" = "Soubor" +"File name" = "Název souboru" +"File not found" = "Soubor nenalezen" +"File published" = "Soubor publikován" +"Files aren't end-to-end encrypted: the server's operator can read them." = "Soubory nemají koncové šifrování: provozovatel serveru je může číst." +"Files nobody opens for {n} days are deleted." = { one = "Soubory, které nikdo neotevře déle než {n} den, se smažou.", other = "Soubory, které nikdo neotevře déle než {n} d, se smažou." } +"Fill" = "Výplň" +"Fill (fr)" = "Vyplnit (fr)" +"Fill container" = "Vyplnit kontejner" +"Fill window" = "Vyplnit okno" +"Fills" = "Výplně" +"Fill|sizing" = "Vyplnit" +"Filter and sort" = "Filtrovat a řadit" +"Find" = "Najít" +"Find and replace" = "Najít a nahradit" +"Find layers" = "Najít vrstvy" +"First" = "První" +"First commit" = "První commit" +"First on top" = "První nahoře" +"Fit" = "Přizpůsobit" +"Fit device to window" = "Přizpůsobit zařízení oknu" +"Fit to contents" = "Přizpůsobit obsahu" +"Fit to window" = "Přizpůsobit oknu" +"Fit width" = "Přizpůsobit šířce" +"Fixed" = "Pevné" +"Fixed gap" = "Pevný rozestup" +"Fixed size" = "Pevná velikost" +"Flatten" = "Sloučit do vektoru" +"Flip" = "Převrátit" +"Flip horizontal" = "Převrátit vodorovně" +"Flip text to the other side" = "Převrátit text na druhou stranu" +"Flip vertical" = "Převrátit svisle" +"Flip width profile" = "Převrátit profil šířky" +"Flow starting point" = "Počáteční bod toku" +"Flow starting points" = "Počáteční body toků" +"Flows" = "Toky" +"Focus view" = "Zaměřený pohled" +"Fold autosaves" = "Sbalit automaticky uložené verze" +"Folder: click to collapse" = "Složka: kliknutím sbalíte" +"Folder: click to expand" = "Složka: kliknutím rozbalíte" +"Follow" = "Sledovat" +"Follow {name}" = "Sledovat: {name}" +"Following" = "Sledování" +"Following {name} · {key} to stop" = "Sledujete: {name} · {key} ukončí sledování" +"Font" = "Písmo" +"Font not installed" = "Písmo není nainstalováno" +"Font size" = "Velikost písma" +"Font style" = "Řez písma" +"Forget on this computer" = "Zapomenout v tomto počítači" +"Four screens of a trail app with components and a prototype flow" = "Čtyři obrazovky turistické aplikace s komponentami a tokem prototypu" +"Fractions" = "Zlomky" +"Frame" = "Rámec" +"Frame selection" = "Vytvořit rámec z výběru" +"Frame tools" = "Nástroje rámců" +"Frames" = "Rámce" +"From the library \"{name}\": read-only" = "Z knihovny „{name}“: jen pro čtení" +"From {name}" = "Z {name}" +"From {server}" = "Ze serveru {server}" +"Frost" = "Námraza" +"Gap" = "Rozestup" +"Gap between columns" = "Mezera mezi sloupci" +"Gap between items" = "Mezera mezi položkami" +"Gap between rows" = "Mezera mezi řádky" +"Getting started" = "Začínáme" +"Give the address of a server open to the public, or a server's address with its key (`figcraft-server key` prints it)." = "Zadejte adresu veřejného serveru nebo adresu serveru s klíčem (vypíše ho příkaz `figcraft-server key`)." +"Glass" = "Sklo" +"Go to main component" = "Přejít na hlavní komponentu" +"Go to {name}" = "Přejít na {name}" +"Grab bag" = "Směs" +"Gradient" = "Barevný přechod" +"Gray" = "Šedá" +"Green" = "Zelená" +"Greyscale components and two example screens to sketch a flow with" = "Komponenty v odstínech šedi a dvě ukázkové obrazovky pro náčrt toku" +"Grid" = "Mřížka" +"Grid ({size})" = "Mřížka ({size})" +"Grid styles" = "Styly mřížek" +"Grid {size}" = "Mřížka {size}" +"Group" = "Skupina" +"Group selection" = "Seskupit výběr" +"Groups" = "Skupiny" +"Gutter" = "Mezera" +"Hand tool" = "Nástroj ruka" +"Hanging list" = "Předsazený seznam" +"Hanging punctuation" = "Předsazená interpunkce" +"Hard light" = "Tvrdé světlo" +"Height" = "Výška" +"Help" = "Nápověda" +"Help and resources" = "Nápověda a zdroje" +"Help page" = "Stránka nápovědy" +"Here: {names}" = "Zde: {names}" +"Hidden" = "Skryté" +"Hide contents" = "Skrýt obsah" +"Hide from publishing" = "Skrýt při publikování" +"Hide section contents" = "Skrýt obsah sekce" +"Hide these tips (Getting started in the Help menu shows them again)" = "Skrýt tyto tipy (znovu je zobrazíte volbou Začínáme v nabídce Nápověda)" +"Hide when publishing" = "Skrýt při publikování" +"Highlight layers on hover" = "Zvýraznit vrstvy pod ukazatelem" +"Highlights" = "Světla" +"Hold Alt" = "Podržte Alt" +"Hold Alt+Z" = "Podržte Alt+Z" +"Hold Ctrl" = "Podržte Ctrl" +"Hold Z" = "Podržte Z" +"Hold ⌃ or ⌘" = "Podržte ⌃ nebo ⌘" +"Hold ⌥" = "Podržte ⌥" +"Hold ⌥Z" = "Podržte ⌥Z" +"Home" = "Domů" +"Horizontal" = "Vodorovně" +"Horizontal align" = "Vodorovné zarovnání" +"Horizontal hex" = "Vodorovný šestiúhelník" +"Horizontal padding" = "Vodorovné vnitřní odsazení" +"Horizontal spacing" = "Vodorovné rozestupy" +"Hosted by {operator}" = "Provozuje {operator}" +"Hover a layer to see its properties" = "Najeďte na vrstvu a zobrazte její vlastnosti" +"Hover other layers to measure the distance" = "Najeďte na jiné vrstvy a změřte vzdálenost" +"Hue" = "Odstín" +"Hug" = "Podle obsahu" +"Hug contents" = "Podle obsahu" +"Icon components on a 24 px grid with keylines and a size preview" = "Komponenty ikon na mřížce 24 px s pomocnými liniemi a náhledem velikosti" +"Icon set starter" = "Základ sady ikon" +"If" = "Pokud" +"If {condition}" = "Pokud {condition}" +"Ignore auto layout (absolute position)" = "Ignorovat automatické rozvržení (absolutní poloha)" +"Image" = "Obrázek" +"Import" = "Import" +"Import path" = "Cesta importu" +"Import plugin from manifest" = "Importovat plugin z manifestu" +"Import plugin from manifest…" = "Importovat plugin z manifestu…" +"Import variables" = "Importovat proměnné" +"Imported {name}" = "Importováno: {name}" +"Imported {n} new variables, updated {updated}" = { one = "Importována {n} nová proměnná, aktualizováno: {updated}", other = "Nově importované proměnné: {n}, aktualizované: {updated}" } +"Import…" = "Importovat…" +"In an instance, this comes from the main component" = "V instanci se toto přebírá z hlavní komponenty" +"In the browser you can join sessions the desktop app hosts and files on a FigCraft server. A page opened over https reaches other computers only through wss:// links (a server behind TLS)." = "V prohlížeči se můžete připojit k relacím hostovaným desktopovou aplikací a k souborům na serveru FigCraft. Stránka otevřená přes https může přistupovat k jiným počítačům pouze přes odkazy wss:// (server za TLS)." +"Include bounding box" = "Zahrnout ohraničující rámeček" +"Include id attribute" = "Zahrnout atribut id" +"Included" = "Zahrnuto" +"Included in layout" = "Zahrnuto do rozvržení" +"Individual corners" = "Jednotlivé rohy" +"Individual strokes" = "Jednotlivé tahy" +"Ink" = "Inkoust" +"Inner shadow" = "Vnitřní stín" +"Inside" = "Uvnitř" +"Inspect" = "Inspekce" +"Inspect the layer under the pointer: size, colours, typography" = "Prozkoumat vrstvu pod ukazatelem: velikost, barvy, typografii" +"Install plugin" = "Nainstalovat plugin" +"Install" = "Nainstalovat" +"Installed {name}" = "Nainstalováno: {name}" +"Installed" = "Nainstalované" +"Installing…" = "Instalace…" +"Instance" = "Instance" +"Instance properties" = "Vlastnosti instance" +"Instance swap" = "Výměna instance" +"Instance swap (no other component)" = "Výměna instance (žádná jiná komponenta)" +"Instances" = "Instance" +"Instant" = "Okamžitě" +"Interaction" = "Interakce" +"Interactions" = "Interakce" +"Interface design and prototyping. A free, open-source, clean-room design tool written from scratch in Rust, part of the ArtCraft Crafting Apps." = "Návrh rozhraní a prototypování. Svobodný nástroj s otevřeným zdrojovým kódem, napsaný od základu v jazyce Rust nezávisle na kódu jiných produktů. Součást sady ArtCraft Crafting Apps." +"Intersect" = "Průnik" +"Intersects" = "Průniky" +"Invite link" = "Odkaz s pozvánkou" +"Invite link copied" = "Odkaz s pozvánkou zkopírován" +"It asks permission to:" = "Žádá o oprávnění:" +"Jan" = "ledna" +"Join" = "Připojit se" +"Join code copied" = "Kód pro připojení zkopírován" +"Join code or invite link" = "Kód pro připojení nebo odkaz s pozvánkou" +"Join live session" = "Připojit se k živé relaci" +"Join us on Discord" = "Připojte se k nám na platformě Discord" +"Join with a code" = "Připojit se pomocí kódu" +"Joined" = "Připojeno" +"Joined {file}" = "Připojeno k souboru {file}" +"Joining…" = "Připojování…" +"Join|stroke" = "Spojení" +"Jul" = "července" +"Jun" = "června" +"Just now" = "Právě teď" +"Justify" = "Do bloku" +"Keep appearance" = "Zachovat vzhled" +"Keep appearance converts every color value to {profile} so colors look the same. Keep values leaves the numbers as they are, so colors shift." = "Zachovat vzhled převede všechny hodnoty barev do profilu {profile}, aby barvy vypadaly stejně. Zachovat hodnoty ponechá čísla beze změny, takže se barvy posunou." +"Keep tool selected after use" = "Po použití ponechat nástroj vybraný" +"Keep values" = "Zachovat hodnoty" +"Key/Gamepad" = "Klávesa/ovladač" +"Key/Gamepad {key}" = "Klávesa/ovladač {key}" +"Keyboard shortcuts" = "Klávesové zkratky" +"Kits" = "Sady" +"Landing page" = "Vstupní stránka" +"Language" = "Jazyk" +"Lasso" = "Laso" +"Last" = "Poslední" +"Last change: {note}" = "Poslední změna: {note}" +"Last commit" = "Poslední commit" +"Last modified" = "Poslední úprava" +"Last on top" = "Poslední nahoře" +"Layer blur" = "Rozostření vrstvy" +"Layer name" = "Název vrstvy" +"Layers" = "Vrstvy" +"Layers in an instance take their position from the main component" = "Vrstvy v instanci přebírají polohu z hlavní komponenty" +"Layout" = "Rozvržení" +"Layout grid" = "Mřížka rozvržení" +"Layout grid settings" = "Nastavení mřížky rozvržení" +"Layout grids" = "Mřížky rozvržení" +"Leave session" = "Opustit relaci" +"Leaves" = "Listy" +"Left" = "Vlevo" +"Left & right" = "Vlevo a vpravo" +"Left side" = "Levá strana" +"Left side width" = "Šířka levé strany" +"Letter case" = "Velikost písmen" +"Letter spacing" = "Prostrkání znaků" +"Libraries" = "Knihovny" +"Libraries in this file" = "Knihovny v tomto souboru" +"Library updates available" = "Jsou dostupné aktualizace knihoven" +"Library: click to collapse" = "Knihovna: kliknutím sbalíte" +"Library: click to expand" = "Knihovna: kliknutím rozbalíte" +"Library: its variables are read-only here; edit them in the library file and publish it" = "Knihovna: její proměnné jsou zde jen pro čtení; upravte je v souboru knihovny a publikujte ho" +"Light" = "Světlý" +"Lighten" = "Zesvětlit" +"Light|glass" = "Světlo" +"Line" = "Čára" +"Line arrow" = "Šipka z čar" +"Line delta" = "Změna počtu řádků" +"Line height" = "Výška řádku" +"Linear" = "Lineární" +"Lines" = "Čáry" +"Lines +/−" = "Řádky +/−" +"Lines added" = "Přidané řádky" +"Lines deleted" = "Smazané řádky" +"Link" = "Odkaz" +"Link copied" = "Odkaz zkopírován" +"Link docs, code or tickets for developers." = "Připojte odkazy na dokumentaci, kód nebo úkoly pro vývojáře." +"Link frames on the Prototype tab, then present the flow" = "Propojte rámce na kartě Prototyp a pak spusťte prezentaci toku" +"Link this component to its code component: instances then show your real snippet with their values." = "Propojte tuto komponentu s její komponentou v kódu: instance pak zobrazí váš skutečný úryvek kódu se svými hodnotami." +"List spacing" = "Rozestupy seznamu" +"List style" = "Styl seznamu" +"Live session" = "Živá relace" +"Live · {people}" = "Živě · {people}" +"Local components" = "Místní komponenty" +"Local network" = "Místní síť" +"Local styles" = "Místní styly" +"Local variables" = "Místní proměnné" +"Lock/Unlock" = "Zamknout/Odemknout" +"Locked" = "Zamknuto" +"Lowercase" = "Malá písmena" +"Luminance" = "Jas" +"Luminosity" = "Světlost" +"Main" = "Hlavní soubor" +"Main component deleted" = "Hlavní komponenta smazána" +"Main menu" = "Hlavní nabídka" +"Make a component" = "Vytvořit komponentu" +"Make slot" = "Vytvořit slot" +"Mar" = "března" +"Margin" = "Vnější okraj" +"Mark all as read" = "Označit vše jako přečtené" +"Mark as resolved" = "Označit jako vyřešené" +"Mark as unread" = "Označit jako nepřečtené" +"Mark as unresolved" = "Označit jako nevyřešené" +"Mask" = "Maska" +"Mass · Stiffness · Damping" = "Hmotnost · Tuhost · Tlumení" +"Match (empty: the whole name)" = "Hledaný text (prázdné: celý název)" +"Max H" = "Max. V" +"Max W" = "Max. Š" +"Max lines" = "Max. řádků" +"Maximize" = "Maximalizovat" +"May" = "května" +"Measure to the selection" = "Měřit k výběru" +"Merge into main" = "Sloučit do hlavního souboru" +"Merge regions" = "Sloučit oblasti" +"Merge the branch into the main file (one undo step) and archive it" = "Sloučit větev do hlavního souboru (jeden krok zpět) a archivovat ji" +"Merged" = "Sloučeno" +"Merged PRs" = "Sloučené PR" +"Min H" = "Min. V" +"Min W" = "Min. Š" +"Minimize" = "Minimalizovat" +"Mirror angle" = "Zrcadlit úhel" +"Mirror angle and length" = "Zrcadlit úhel a délku" +"Mirroring" = "Zrcadlení" +"Missing" = "Chybí" +"Missing layer" = "Chybějící vrstva" +"Missing style" = "Chybějící styl" +"Missing variable" = "Chybějící proměnná" +"Miter" = "Ostrý" +"Miter angle" = "Úhel ostrého spoje" +"Mixed" = "Smíšené" +"Mixed fonts" = "Smíšená písma" +"Mixed interactions: click + to replace them" = "Smíšené interakce: kliknutím na + je nahradíte" +"Mobile app" = "Mobilní aplikace" +"Mode" = "Režim" +"Model" = "Model" +"Models" = "Modely" +"Mono" = "Jednobarevné" +"More" = "Další" +"More instance actions" = "Další akce instance" +"Mouse down" = "Stisk myši" +"Mouse enter" = "Vstup ukazatele" +"Mouse leave" = "Odchod ukazatele" +"Mouse up" = "Uvolnění myši" +"Move along the toolbar or the layer rows" = "Pohyb po panelu nástrojů nebo řádcích vrstev" +"Move" = "Přesunout" +"Move column left" = "Přesunout sloupec vlevo" +"Move column right" = "Přesunout sloupec vpravo" +"Move down" = "Posunout dolů" +"Move in" = "Přesunout dovnitř" +"Move out" = "Přesunout ven" +"Move tools" = "Nástroje přesunu" +"Move up" = "Posunout nahoru" +"Moved to {name}" = "Přesunuto do {name}" +"Multi" = "Vícebarevné" +"Multiply" = "Násobit" +"Muted" = "Tlumené" +"Name" = "Název" +"Name (A–Z)" = "Název (A–Z)" +"Named instance" = "Pojmenovaná instance" +"Navigate to" = "Přejít na" +"Nested instance" = "Vnořená instance" +"New design file" = "Nový soubor návrhu" +"Newest first" = "Od nejnovějších" +"Next or previous control in the focused region" = "Další nebo předchozí ovládací prvek v zaměřené oblasti" +"Next ready for dev" = "Další připravené pro vývoj" +"Next size option" = "Další možnost velikosti" +"No assets: no export settings, icons or images. Add export settings in the Design tab." = "Žádné zdroje: chybí nastavení exportu, ikony i obrázky. Přidejte nastavení exportu na kartě Návrh." +"No boolean variables fit here." = "Žádné vhodné logické proměnné." +"No boolean variables yet. Create them in Local variables." = "Zatím žádné logické proměnné. Vytvořte je v Místních proměnných." +"No branches. A branch is a copy of the file to try changes in, then review and merge." = "Žádné větve. Větev je kopie souboru pro vyzkoušení změn, které pak zkontrolujete a sloučíte." +"No category" = "Bez kategorie" +"No changes" = "Žádné změny" +"No colour variables fit here." = "Žádné vhodné barevné proměnné." +"No colour variables yet. Create them in Local variables." = "Zatím žádné barevné proměnné. Vytvořte je v Místních proměnných." +"No comments yet" = "Zatím žádné komentáře" +"No components yet. Select layers and press {keys}." = "Zatím žádné komponenty. Vyberte vrstvy a stiskněte {keys}." +"No conflicts." = "Žádné konflikty." +"No contributor data was built into this copy." = "Toto sestavení neobsahuje údaje o přispěvatelích." +"No fonts match" = "Žádná odpovídající písma" +"No join code here (the server is older than join codes, or this address can't be put in one): share the link instead." = "Kód pro připojení není dostupný (server kódy nepodporuje nebo tuto adresu nelze do kódu vložit): sdílejte odkaz." +"No layer changes to show." = "Žádné změny vrstev k zobrazení." +"No libraries yet. Add a .figcraft file that was published as a library, or paste a team library's link." = "Zatím žádné knihovny. Přidejte soubor .figcraft publikovaný jako knihovna nebo vložte odkaz na týmovou knihovnu." +"No list" = "Bez seznamu" +"No matching comments" = "Žádné odpovídající komentáře" +"No matching components" = "Žádné odpovídající komponenty" +"No matching layers" = "Žádné odpovídající vrstvy" +"No matching styles" = "Žádné odpovídající styly" +"No matching variables" = "Žádné odpovídající proměnné" +"No mirroring" = "Bez zrcadlení" +"No model credits were built into this copy." = "Toto sestavení neobsahuje údaje o podílu modelů." +"No number variables fit here." = "Žádné vhodné číselné proměnné." +"No number variables yet. Create them in Local variables." = "Zatím žádné číselné proměnné. Vytvořte je v Místních proměnných." +"No paints" = "Žádné výplně" +"No plugins on {server}." = "Na serveru {server} nejsou žádné pluginy." +"No plugins yet. Import a development plugin from its figcraft-plugin.json." = "Zatím žádné pluginy. Importujte vývojový plugin z jeho souboru figcraft-plugin.json." +"No preferred components" = "Žádné preferované komponenty" +"No preset" = "Bez předvolby" +"No saved versions yet. Save a version to mark a point in your work you can come back to." = "Zatím žádné uložené verze. Uložte verzi jako bod práce, ke kterému se můžete vrátit." +"No scrolling" = "Bez posouvání" +"No shortcuts match" = "Žádné odpovídající zkratky" +"No status" = "Bez stavu" +"No string variables fit here." = "Žádné vhodné textové proměnné." +"No string variables yet. Create them in Local variables." = "Zatím žádné textové proměnné. Vytvořte je v Místních proměnných." +"No styles yet." = "Zatím žádné styly." +"No styles yet. Click + to create one from the selection." = "Zatím žádné styly. Kliknutím na + vytvoříte styl z výběru." +"No templates match your search" = "Žádné šablony neodpovídají hledání" +"No text styles yet. Click + to create one from the selected text." = "Zatím žádné textové styly. Kliknutím na + vytvoříte styl z vybraného textu." +"No variables fit here." = "Žádné vhodné proměnné." +"No variables yet. Create them in Local variables." = "Zatím žádné proměnné. Vytvořte je v Místních proměnných." +"Nobody else is here yet" = "Zatím tu není nikdo další" +"Noise" = "Šum" +"None" = "Žádné" +"None." = "Žádné." +"Normal" = "Normální" +"Not bound" = "Nenavázáno" +"Not in a live session" = "Mimo živou relaci" +"Not in this font" = "Není v tomto písmu" +"Not properties, kept as written: {names}" = "Nejde o vlastnosti, ponecháno beze změny: {names}" +"Not read yet" = "Dosud nepřečteno" +"Not shared" = "Nesdíleno" +"Note {n}" = "Poznámka {n}" +"Nothing changed since this was marked ready for dev." = "Od označení jako připravené pro vývoj se nic nezměnilo." +"Nothing here yet. Set a frame's status to list it." = "Zatím nic. Pro zobrazení rámce v seznamu nastavte jeho stav." +"Nothing online yet. Use Share on a file to put it online and it is listed here." = "Zatím nic online. Nahrajte soubor online pomocí Sdílet a zobrazí se zde." +"Nothing to export" = "Není co exportovat" +"Nov" = "listopadu" +"Now" = "Nyní" +"Nudge (Shift: big nudge)" = "Posunout (Shift: větší posun)" +"Nudge amount" = "Velikost posunu" +"Number" = "Číslo" +"Number ↑" = "Číslo ↑" +"Number ↓" = "Číslo ↓" +"Numbered list" = "Číslovaný seznam" +"Object" = "Objekt" +"Oct" = "října" +"Off" = "Vypnuto" +"Offered first when filling the slot (any content is allowed)" = "Nabídne se jako první při vyplňování slotu (povolen je libovolný obsah)" +"Offered first when swapping the instance (any component is allowed)" = "Nabídne se jako první při výměně instance (povolena je libovolná komponenta)" +"Offset" = "Posun" +"Oldest first" = "Od nejstarších" +"On click" = "Při kliknutí" +"On drag" = "Při tažení" +"On this page" = "Na této stránce" +"One announcement in five common sizes: square, portrait, story, link and banner" = "Jedno oznámení v pěti běžných velikostech: čtverec, na výšku, příběh, odkaz a banner" +"Online" = "Online" +"Online files" = "Online soubory" +"Online sharing is off: files are shared on the local network only." = "Online sdílení je vypnuté: soubory se sdílejí pouze v místní síti." +"Only the first changed layers are listed." = "Zobrazeny jsou pouze první změněné vrstvy." +"Only the first {n} changed layers are listed." = "Zobrazeno je pouze prvních {n} změněných vrstev." +"Only your threads" = "Pouze vaše vlákna" +"Opacity" = "Krytí" +"Opacity & blend" = "Krytí a prolnutí" +"Opacity 10%…90%, 0: 100%" = "Krytí 10 %…90 %, 0: 100 %" +"Open" = "Otevřít" +"Open .figcraft, .svg or images" = "Otevřít .figcraft, .svg nebo obrázky" +"Open branch" = "Otevřít větev" +"Open file" = "Otevřít soubor" +"Open files" = "Otevřít soubory" +"Open in focus view" = "Otevřít v zaměřeném pohledu" +"Open in new window" = "Otevřít v novém okně" +"Open invite links in FigCraft" = "Otevírat odkazy s pozvánkou v aplikaci FigCraft" +"Open link" = "Otevřít odkaz" +"Open link {url}" = "Otevřít odkaz {url}" +"Open overlay" = "Otevřít překryv" +"Open prototype preview" = "Otevřít náhled prototypu" +"Open variables ({count})" = "Otevřít proměnné ({count})" +"Opened “{name}” in a new tab" = "Soubor „{name}“ otevřen v nové kartě" +"Open|comments" = "Otevřené" +"Options" = "Možnosti" +"Orange" = "Oranžová" +"Order" = "Pořadí" +"Other apps may not open every .fig file exported here." = "Jiné aplikace nemusí otevřít všechny zde exportované soubory .fig." +"Others lose access and keep their copy; the file stays on the server for you" = "Ostatní ztratí přístup a ponechají si svou kopii; soubor pro vás zůstane na serveru" +"Others type this under Share ▸ Join with a code" = "Ostatní tento kód zadají v nabídce Sdílet ▸ Připojit se pomocí kódu" +"Outline stroke" = "Převést tah na obrysy" +"Outline text" = "Převést text na obrysy" +"Outlines" = "Obrysy" +"Outside" = "Vně" +"Overflow" = "Přetečení" +"Overlay" = "Překryv" +"Overlay position" = "Poloha překryvu" +"Overridden here (the collection it extends has another value)" = "Zde přepsáno (rozšiřovaná kolekce má jinou hodnotu)" +"Overrides" = "Přepsání" +"Owner token" = "Token vlastníka" +"Owner token copied" = "Token vlastníka zkopírován" +"PDF print options" = "Možnosti tisku PDF" +"PDF print settings" = "Nastavení tisku PDF" +"Padding" = "Vnitřní odsazení" +"Page" = "Stránka" +"Pages" = "Stránky" +"Pages: {pages}" = "Stránky: {pages}" +"Paint bucket" = "Plechovka barvy" +"Pan the canvas" = "Posunout plátno" +"Pan with nothing selected (Shift: farther)" = "Posun bez výběru (Shift: dále)" +"Panels" = "Panely" +"Paper" = "Papír" +"Paragraph indent" = "Odsazení odstavce" +"Paragraph indent applies to left-aligned text" = "Odsazení odstavce se vztahuje na text zarovnaný vlevo" +"Paragraph spacing" = "Mezery mezi odstavci" +"Pass through" = "Průchozí" +"Paste a link (https://…)" = "Vložte odkaz (https://…)" +"Paste a team library link (a view link)" = "Vložte odkaz na týmovou knihovnu (odkaz pro prohlížení)" +"Paste here" = "Vložit sem" +"Paste to replace" = "Vložit a nahradit" +"Pattern" = "Vzor" +"Pattern alignment" = "Zarovnání vzoru" +"Pattern scale" = "Měřítko vzoru" +"Pattern source" = "Zdroj vzoru" +"Pen" = "Pero" +"Pencil" = "Tužka" +"People in this file" = "Lidé v tomto souboru" +"People join from anywhere with a code. The file is kept on {server} while you share it." = "Lidé se připojí odkudkoli pomocí kódu. Po dobu sdílení je soubor uložen na serveru {server}." +"People on your network join with a code. Nothing goes through a server." = "Lidé ve vaší síti se připojí pomocí kódu. Nic neprochází přes server." +"Phone" = "Telefon" +"Pick color" = "Vybrat barvu" +"Pick color (I)" = "Vybrat barvu (I)" +"Pick one font family first" = "Nejprve vyberte jednu rodinu písma" +"Pick the Frame tool, then drag on the canvas or choose a device size" = "Vyberte nástroj Rámec a pak táhněte na plátně nebo zvolte velikost zařízení" +"Pin a property" = "Připnout vlastnost" +"Pinch" = "Sevření" +"Pixel grid" = "Pixelová mřížka" +"Pixel preview 1x" = "Pixelový náhled 1x" +"Pixel preview 2x" = "Pixelový náhled 2x" +"Place a shape or frame (its tool chosen)" = "Umístit tvar nebo rámec (s vybraným nástrojem)" +"Place automatically" = "Umístit automaticky" +"Place image" = "Umístit obrázek" +"Plugins run in FigCraft's sandbox, without files, network or clock. Install only plugins you trust." = "Pluginy běží v izolovaném prostředí aplikace FigCraft bez přístupu k souborům, síti nebo hodinám. Instalujte pouze pluginy, kterým důvěřujete." +"Plugins" = "Pluginy" +"Plus darker" = "Sčítání se ztmavením" +"Plus lighter" = "Sčítání se zesvětlením" +"Point" = "Bod" +"Points" = "Body" +"Polygon" = "Mnohoúhelník" +"Polygons" = "Mnohoúhelníky" +"Port" = "Port" +"Position" = "Poloha" +"Post" = "Odeslat" +"Preferences" = "Předvolby" +"Preferred" = "Preferované" +"Present" = "Prezentovat" +"Present or preview" = "Prezentovat nebo zobrazit náhled" +"Present this flow" = "Prezentovat tento tok" +"Presentation" = "Prezentace" +"Presentation slides" = "Snímky prezentace" +"Presenting: comments" = "Prezentace: komentáře" +"Presenting: cycle the size options" = "Prezentace: přepnout možnosti velikosti" +"Presenting: full screen" = "Prezentace: celá obrazovka" +"Presenting: next frame" = "Prezentace: další rámec" +"Presenting: previous frame" = "Prezentace: předchozí rámec" +"Presenting: restart" = "Prezentace: znovu spustit" +"Preserve scroll position" = "Zachovat pozici posouvání" +"Presets" = "Předvolby" +"Press a key…" = "Stiskněte klávesu…" +"Playground" = "Zkušební prostředí" +"Preview" = "Náhled" +"Preview this flow" = "Náhled tohoto toku" +"Preview this frame" = "Náhled tohoto rámce" +"Previous ready for dev" = "Předchozí připravené pro vývoj" +"Progressive" = "Postupné" +"Properties" = "Vlastnosti" +"Prototype" = "Prototyp" +"Prototype preview" = "Náhled prototypu" +"Prototype settings" = "Nastavení prototypu" +"Publish" = "Publikovat" +"Publish changes" = "Publikovat změny" +"Publish to another server…" = "Publikovat na jiný server…" +"Publish to server" = "Publikovat na server" +"Published version {v}" = "Publikovaná verze {v}" +"Published version {v} to the server" = "Verze {v} publikována na server" +"Published version {v}: save the file so other files can use it" = "Publikována verze {v}: uložte soubor, aby ji mohly používat ostatní soubory" +"Published · {people}" = "Publikováno · {people}" +"Publishing to a server needs the desktop app; in the browser you can join a server's files" = "Publikování na server vyžaduje desktopovou aplikaci; v prohlížeči se můžete připojit k souborům na serveru" +"Publishing with the server's key." = "Publikování s klíčem serveru." +"Publishing…" = "Publikování…" +"Push" = "Vytlačení" +"Push changes to main component" = "Přenést změny do hlavní komponenty" +"Put text on path" = "Umístit text na cestu" +"R" = "R" +"Radial" = "Kruhový" +"Radius" = "Poloměr" +"Ratio" = "Poměr" +"Reading the library…" = "Načítání knihovny…" +"Ready for dev" = "Připraveno pro vývoj" +"Real name" = "Skutečné jméno" +"Recent" = "Nedávné" +"Recent files" = "Nedávné soubory" +"Recents" = "Nedávné" +"Recovered {n} unsaved files after the app quit unexpectedly: save them to keep them" = { one = "Po neočekávaném ukončení aplikace obnoven {n} neuložený soubor: uložte ho pro zachování", other = "Po neočekávaném ukončení aplikace obnoveny neuložené soubory (počet: {n}): uložte je pro zachování" } +"Rectangle" = "Obdélník" +"Rectangles" = "Obdélníky" +"Red" = "Červená" +"Reduce motion" = "Omezit pohyb" +"Refraction" = "Lom světla" +"Regular expression" = "Regulární výraz" +"Remove" = "Odebrat" +"Remove all" = "Odebrat vše" +"Remove annotation" = "Odebrat anotaci" +"Remove auto layout" = "Odebrat automatické rozvržení" +"Remove dev resource" = "Odebrat zdroj pro vývojáře" +"Remove export setting" = "Odebrat nastavení exportu" +"Remove from recents" = "Odebrat z nedávných" +"Remove from server" = "Odebrat ze serveru" +"Remove from server…" = "Odebrat ze serveru…" +"Remove guide" = "Odebrat vodítko" +"Remove interaction" = "Odebrat interakci" +"Remove library from this file" = "Odebrat knihovnu z tohoto souboru" +"Remove min and max" = "Odebrat minimum a maximum" +"Remove min and max height" = "Odebrat minimální a maximální výšku" +"Remove min and max width" = "Odebrat minimální a maximální šířku" +"Remove regions" = "Odebrat oblasti" +"Remove slot" = "Odebrat slot" +"Remove starting point" = "Odebrat počáteční bod" +"Remove stop" = "Odebrat zarážku" +"Remove text from path" = "Odebrat text z cesty" +"Remove the else and its actions" = "Odebrat větev Jinak a její akce" +"Remove this condition and its actions" = "Odebrat tuto podmínku a její akce" +"Remove this file from the server? It can't be shared or opened from there again. Your copy stays open here." = "Odebrat tento soubor ze serveru? Již odtud nepůjde sdílet ani otevřít. Vaše kopie zde zůstane otevřená." +"Remove {name} from {server}?" = "Odebrat {name} ze serveru {server}?" +"Removed" = "Odebráno" +"Removed from the server" = "Odebráno ze serveru" +"Removed since it was marked" = "Odebráno od označení" +"Rename" = "Přejmenovat" +"Rename duplicated layers" = "Přejmenovávat duplikované vrstvy" +"Rename folder" = "Přejmenovat složku" +"Rename group" = "Přejmenovat skupinu" +"Rename layers" = "Přejmenovat vrstvy" +"Rename mode" = "Přejmenovat režim" +"Rename on the server" = "Přejmenovat na serveru" +"Rename on the server…" = "Přejmenovat na serveru…" +"Rename page" = "Přejmenovat stránku" +"Rename to" = "Přejmenovat na" +"Replace all" = "Nahradit vše" +"Replace mixed export settings" = "Nahradit smíšená nastavení exportu" +"Replace with" = "Nahradit za" +"Replace with a new interaction" = "Nahradit novou interakcí" +"Reply" = "Odpovědět" +"Report" = "Nahlásit" +"Report this file…" = "Nahlásit tento soubor…" +"Reset" = "Obnovit výchozí" +"Reset adjustments" = "Obnovit úpravy" +"Reset all changes" = "Vrátit všechny změny" +"Reset all overrides on this layer" = "Zrušit všechna přepsání této vrstvy" +"Reset overrides" = "Zrušit přepsání" +"Reset slot" = "Obnovit slot" +"Reset this override" = "Zrušit toto přepsání" +"Reset to style" = "Obnovit podle stylu" +"Reset to the inherited value" = "Obnovit zděděnou hodnotu" +"Resize by the nudge amount" = "Změnit velikost o velikost posunu" +"Resize frames to the device's screen (or the window without a device): their constraints and auto layout respond" = "Přizpůsobit velikost rámců obrazovce zařízení (nebo oknu bez zařízení): omezení a automatické rozvržení se přizpůsobí" +"Resize to fit" = "Přizpůsobit velikost obsahu" +"Resolve" = "Vyřešit" +"Resolve change" = "Vyřešit změnu" +"Resolved" = "Vyřešené" +"Resources" = "Zdroje" +"Responsive" = "Responzivní" +"Restart" = "Znovu spustit" +"Restore" = "Obnovit" +"Restore main component" = "Obnovit hlavní komponentu" +"Restore this version" = "Obnovit tuto verzi" +"Restored “{name}”" = "Obnoveno: „{name}“" +"Reverse the order" = "Obrátit pořadí" +"Reversed triangle" = "Obrácený trojúhelník" +"Review and merge" = "Zkontrolovat a sloučit" +"Ribbon" = "Stuha" +"Right" = "Vpravo" +"Right side" = "Pravá strana" +"Right side width" = "Šířka pravé strany" +"Rotate 90°" = "Otočit o 90°" +"Rotate 90° right" = "Otočit o 90° doprava" +"Rotate to landscape" = "Otočit na šířku" +"Rotate to portrait" = "Otočit na výšku" +"Rotation" = "Natočení" +"Rotation jitter" = "Náhodná odchylka natočení" +"Round" = "Kulatý" +"Rounded" = "Zaoblený" +"Row" = "Řádek" +"Row gap" = "Mezera mezi řádky" +"Row sizes" = "Velikosti řádků" +"Row span" = "Rozpětí přes řádky" +"Rows" = "Řádky" +"Rows {count}" = "Řádky: {count}" +"Rulers" = "Pravítka" +"Run" = "Spustit" +"Run {label}" = "Spustit {label}" +"Search templates" = "Hledat šablony" +"See all templates" = "Zobrazit všechny šablony" +"Select layers and they space themselves as their content changes" = "Vyberte vrstvy a jejich rozestupy se přizpůsobí změnám obsahu" +"SHA-256: {sha}…" = "SHA-256: {sha}…" +"Same as layer" = "Stejné jako vrstva" +"Saturation" = "Sytost" +"Save" = "Uložit" +"Save as" = "Uložit jako" +"Save as preset…" = "Uložit jako předvolbu…" +"Save version {key}" = "Uložit verzi {key}" +"Saved" = "Uloženo" +"Saved {name}" = "Uloženo: {name}" +"Say something" = "Napište něco" +"Scale" = "Měřítko" +"Scatter" = "Rozptyl" +"Scoping: where pickers offer it" = "Rozsah použití: kde se nabízí ve výběru" +"Screen" = "Závoj" +"Scroll behavior" = "Chování při posouvání" +"Scroll to" = "Posunout na" +"Scroll to layer" = "Posunout na vrstvu" +"Scroll with parent" = "Posouvat s nadřazeným prvkem" +"Search plugins" = "Hledat pluginy" +"Search" = "Hledat" +"Search actions, layers and tools" = "Hledat akce, vrstvy a nástroje" +"Search assets" = "Hledat zdroje" +"Search comments" = "Hledat komentáře" +"Search fonts" = "Hledat písma" +"Search layers" = "Hledat vrstvy" +"Search shortcuts" = "Hledat zkratky" +"Section" = "Sekce" +"Section color" = "Barva sekce" +"Sections" = "Sekce" +"Select a frame and add a starting point to present it as a flow." = "Vyberte rámec a přidejte počáteční bod pro prezentaci jako tok." +"Select a frame to preview it" = "Vyberte rámec pro náhled" +"Select a layer to see its properties and code" = "Vyberte vrstvu a zobrazte její vlastnosti a kód" +"Select all" = "Vybrat vše" +"Select all with same" = "Vybrat vše se stejným" +"Select layer" = "Vybrat vrstvu" +"Select layers to apply the style to" = "Vyberte vrstvy, na které chcete použít styl" +"Select overlapping shapes" = "Vyberte překrývající se tvary" +"Select points to edit their position, radius and mirroring" = "Vyberte body a upravte jejich polohu, poloměr a zrcadlení" +"Select slot" = "Vybrat slot" +"Selection" = "Výběr" +"Selection box, {w} by {h} at {x}, {y}: arrows move it, Shift+arrows or {cmd}+arrows size it, Enter selects, Escape cancels" = "Rámeček výběru, {w} × {h} na pozici {x}, {y}: šipky posouvají, Shift+šipky nebo {cmd}+šipky mění velikost, Enter vybere, Escape zruší" +"Selection box: arrows move it, Shift+arrows or {cmd}+arrows size it, Enter selects, Escape cancels" = "Rámeček výběru: šipky posouvají, Shift+šipky nebo {cmd}+šipky mění velikost, Enter vybere, Escape zruší" +"Send backward" = "Přesunout o úroveň níž" +"Send report" = "Odeslat hlášení" +"Send to back" = "Přesunout do pozadí" +"Sep" = "září" +"Server address (ws://host:47900/)" = "Adresa serveru (ws://host:47900/)" +"Server address" = "Adresa serveru" +"Server for online sharing" = "Server pro online sdílení" +"Set as default" = "Nastavit jako výchozí" +"Set variable" = "Nastavit proměnnou" +"Set variable mode" = "Nastavit režim proměnných" +"Set variable {name}" = "Nastavit proměnnou {name}" +"Set {name} to {value}" = "Nastavit {name} na {value}" +"Shadows" = "Stíny" +"Shape" = "Tvar" +"Shape builder" = "Tvorba tvarů" +"Shape tools" = "Nástroje tvarů" +"Share" = "Sdílet" +"Share this file" = "Sdílet tento soubor" +"Share with a code" = "Sdílet pomocí kódu" +"Share: live session, export" = "Sdílet: živá relace, export" +"Shared" = "Sdíleno" +"Shared: copy its code from the file's menu" = "Sdíleno: zkopírujte kód z nabídky souboru" +"Sharing a file needs the desktop app; here you can join one." = "Sdílení souboru vyžaduje desktopovou aplikaci; zde se můžete k souboru připojit." +"Sharing on the local network (online sharing is off: no server is set in Preferences)." = "Sdílení v místní síti (online sdílení je vypnuté: v předvolbách není nastaven server)." +"Sharing on your network · {people}" = "Sdílení ve vaší síti · {people}" +"Sharing online · {people}" = "Sdílení online · {people}" +"Sharing stopped: the file stays on the server, open only to you" = "Sdílení zastaveno: soubor zůstává na serveru, přístupný pouze vám" +"Show" = "Zobrazit" +"Show all templates" = "Zobrazit všechny šablony" +"Show as grid" = "Zobrazit jako mřížku" +"Show as list" = "Zobrazit jako seznam" +"Show autosaves" = "Zobrazit automaticky uložené verze" +"Show behind transparent areas" = "Zobrazit za průhlednými oblastmi" +"Show comments (Shift+C)" = "Zobrazit komentáře (Shift+C)" +"Show device frame" = "Zobrazit rámeček zařízení" +"Show dimensions on objects" = "Zobrazit rozměry objektů" +"Show hotspot hints" = "Zobrazit nápovědu interaktivních oblastí" +"Show in Explorer" = "Zobrazit v Průzkumníku" +"Show in Finder" = "Zobrazit v aplikaci Finder" +"Show in folder" = "Zobrazit ve složce" +"Show only this on the canvas" = "Zobrazit na plátně pouze toto" +"Show open" = "Zobrazit otevřené" +"Show section contents" = "Zobrazit obsah sekce" +"Show this layer" = "Zobrazit tuto vrstvu" +"Show usage" = "Zobrazit použití" +"Show/Hide" = "Zobrazit/Skrýt" +"Show/Hide UI" = "Zobrazit/Skrýt rozhraní" +"Side by side" = "Vedle sebe" +"Sidebar" = "Postranní panel" +"Simplify stroke" = "Zjednodušit tah" +"Size" = "Velikost" +"Size jitter" = "Náhodná odchylka velikosti" +"Skip ink" = "Vynechat tahy písmen" +"Slashed zero" = "Přeškrtnutá nula" +"Slice" = "Výřez" +"Slices" = "Výřezy" +"Slide in" = "Zasunutí" +"Slide out" = "Vysunutí" +"Slot" = "Slot" +"Slot content" = "Obsah slotu" +"Small capitals" = "Kapitálky" +"Small caps" = "Kapitálky" +"Smart animate" = "Chytrá animace" +"Snap to pixel grid" = "Přichytávat k pixelové mřížce" +"Social and slides" = "Sociální sítě a snímky" +"Social media" = "Sociální sítě" +"Social post sizes" = "Velikosti příspěvků na sociální sítě" +"Soft light" = "Měkké světlo" +"Solid" = "Plná barva" +"Some variants have the same property values: give each one a unique combination" = "Některé varianty mají stejné hodnoty vlastností: dejte každé jedinečnou kombinaci" +"Sort" = "Řadit" +"Sort by" = "Řadit podle" +"Sort by date" = "Řadit podle data" +"Sort by page" = "Řadit podle stránky" +"Sort by {column}" = "Řadit podle {column}" +"Space around" = "Mezery kolem" +"Space between" = "Mezery mezi" +"Space drag" = "Mezerník a tažení" +"Space evenly" = "Stejné mezery" +"Space+drag" = "Mezerník+tažení" +"Spacing" = "Rozestupy" +"Spam, stolen work, abuse…" = "Spam, odcizená práce, zneužití…" +"Splay" = "Rozevření" +"Spotlight me" = "Sdílet můj pohled" +"Spread" = "Rozšíření" +"Square" = "Čtverec" +"Standard" = "Standardní" +"Standard ligatures" = "Standardní ligatury" +"Star" = "Hvězda" +"Stars" = "Hvězdy" +"Start" = "Začátek" +"Start ascending from / stop descending at" = "Začít vzestupně od / skončit sestupně na" +"Start from a blank canvas" = "Začít s prázdným plátnem" +"Start from a template" = "Začít ze šablony" +"Start on path" = "Začátek na cestě" +"Start point" = "Počáteční bod" +"Start sharing" = "Zahájit sdílení" +"Start sharing with the Share button, then pass on the code it gives" = "Zahajte sdílení tlačítkem Sdílet a předejte získaný kód" +"Starting to share…" = "Zahajování sdílení…" +"Status" = "Stav" +"Sticky" = "Přichycené" +"Stop" = "Zastavit" +"Stop following {name}" = "Přestat sledovat: {name}" +"Stop session" = "Ukončit relaci" +"Stop sharing" = "Zastavit sdílení" +"Stop spotlighting" = "Ukončit sdílení pohledu" +"Stop {n} {hex}" = "Zarážka {n} {hex}" +"Stretch" = "Roztáhnout" +"Strikethrough" = "Přeškrtnutí" +"String" = "Textový řetězec" +"Stroke" = "Tah" +"Stroke style" = "Styl tahu" +"Stroke weight" = "Tloušťka tahu" +"Strokes" = "Tahy" +"Style" = "Styl" +"Styles" = "Styly" +"Stylistic set 1" = "Stylistická sada 1" +"Stylistic set 2" = "Stylistická sada 2" +"Stylistic set 3" = "Stylistická sada 3" +"Stylistic set 4" = "Stylistická sada 4" +"Stylistic set 5" = "Stylistická sada 5" +"Subtract" = "Odečíst" +"Subtracts" = "Odečtení" +"Suffix" = "Přípona" +"Suspend snapping while dragging" = "Dočasně vypnout přichytávání při tažení" +"Swap instance" = "Vyměnit instanci" +"Swap library: use another library's assets of the same names" = "Vyměnit knihovnu: použít stejně pojmenované zdroje jiné knihovny" +"Swap orientation" = "Změnit orientaci" +"Swap overlay" = "Vyměnit překryv" +"Swap to {name}" = "Vyměnit za {name}" +"Swap width and height" = "Prohodit šířku a výšku" +"Swapped instance" = "Instance vyměněna" +"Swapped {n} assets" = { one = "Vyměněn {n} zdroj", other = "Vyměněné zdroje: {n}" } +"Swapped {n} assets; {missed} had no match and still use the old library" = { one = "Vyměněn {n} zdroj; bez shody: {missed}, nadále používají původní knihovnu", other = "Vyměněné zdroje: {n}; bez shody: {missed}, nadále používají původní knihovnu" } +"Sweep" = "Rozsah" +"System" = "Systém" +"Tab / Shift+Tab" = "Tab / Shift+Tab" +"Table" = "Tabulka" +"Tablet" = "Tablet" +"Tabular numbers" = "Tabulkové číslice" +"Take the values from the first selected layer" = "Převzít hodnoty z první vybrané vrstvy" +"Taper" = "Zúžení" +"Taper both ends" = "Zúžení obou konců" +"Tell the server's operator what is wrong with it" = "Sdělte provozovateli serveru, co je se souborem v nepořádku" +"Temperature" = "Teplota" +"Template" = "Šablona" +"Templates" = "Šablony" +"Terms" = "Podmínky" +"Text" = "Text" +"Text align" = "Zarovnání textu" +"Text content" = "Textový obsah" +"Text style" = "Textový styl" +"Text styles" = "Textové styly" +"Texts" = "Texty" +"Texture" = "Textura" +"The canvas previews colors in sRGB; exported PNG, JPG and WebP files are tagged Display P3." = "Plátno zobrazuje barvy v sRGB; exportované soubory PNG, JPG a WebP mají profil Display P3." +"The file is deleted from the server: nobody can open or join it from there again, and this can't be undone. Copies that are open stay with whoever has them." = "Soubor se smaže ze serveru: nikdo ho odtud již neotevře ani se k němu nepřipojí a tuto akci nelze vrátit zpět. Otevřené kopie zůstanou těm, kteří je mají." +"The file now holds another library" = "Soubor nyní obsahuje jinou knihovnu" +"The file now holds another library (\"{name}\")" = "Soubor nyní obsahuje jinou knihovnu („{name}“)" +"The files you shared or published online from this computer. They stay on their server until you remove them." = "Soubory sdílené nebo publikované online z tohoto počítače. Zůstanou na svém serveru, dokud je neodeberete." +"The link carries the session's secret: share it only with people you invite." = "Odkaz obsahuje tajný údaj relace: sdílejte ho pouze s pozvanými lidmi." +"The name in your online files and on the server. The document inside keeps its own name." = "Název v online souborech a na serveru. Dokument uvnitř si ponechá vlastní název." +"The selection uses several text styles: click to apply one" = "Výběr používá více textových stylů: kliknutím použijete jeden" +"The server deletes this file if nobody opens it before {date}." = "Server tento soubor smaže, pokud ho nikdo neotevře před {date}." +"The whole file" = "Celý soubor" +"Theme" = "Motiv" +"There's no destination for that action" = "Tato akce nemá cíl" +"Thickness" = "Tloušťka" +"This branch can't be reviewed: {e}" = "Tuto větev nelze zkontrolovat: {e}" +"This branch was merged or archived." = "Tato větev byla sloučena nebo archivována." +"This computer only" = "Pouze tento počítač" +"This computer remembers the owner token, so the file can be managed from the home screen's Online list. Copy it to manage the file from somewhere else: it is a password for this file and won't be shown again." = "Tento počítač si pamatuje token vlastníka, takže soubor můžete spravovat ze seznamu Online na domovské obrazovce. Zkopírujte ho pro správu souboru odjinud: je to heslo k tomuto souboru a znovu se nezobrazí." +"This condition is edited as an expression" = "Tato podmínka se upravuje jako výraz" +"This file" = "Tento soubor" +"This file has unsaved changes" = "Tento soubor obsahuje neuložené změny" +"This file is on {server}, open only to you. Share it to let others in with a new code." = "Tento soubor je na serveru {server}, přístupný pouze vám. Sdílením umožníte ostatním připojení pomocí nového kódu." +"This frame is new on the branch." = "Tento rámec je ve větvi nový." +"This frame isn't on the branch." = "Tento rámec není ve větvi." +"This server is open to the public: no key needed." = "Tento server je veřejný: klíč není potřeba." +"This server needs its key: add ?key=… to the address (`figcraft-server key` prints it on the server's machine)." = "Tento server vyžaduje klíč: přidejte do adresy ?key=… (příkaz `figcraft-server key` ho vypíše na počítači serveru)." +"This server takes files only with its key: see Advanced." = "Tento server přijímá soubory pouze s klíčem: viz Pokročilé." +"Tidy up" = "Uspořádat" +"Tile" = "Dlaždice" +"Tile type" = "Typ dlaždic" +"Tint" = "Tónování" +"Title" = "Název" +"Title case" = "Velká počáteční písmena slov" +"To share this library with your team, publish the file to a server (Share ▸ Publish to server…), then publish the library there." = "Chcete-li sdílet tuto knihovnu s týmem, publikujte soubor na server (Sdílet ▸ Publikovat na server…) a pak tam publikujte knihovnu." +"Toggle" = "Přepnout" +"Toggle light/dark theme" = "Přepnout světlý/tmavý motiv" +"Toggle visibility" = "Přepnout viditelnost" +"Tools" = "Nástroje" +"Top" = "Nahoře" +"Top & bottom" = "Nahoře a dole" +"Top left radius" = "Poloměr levého horního rohu" +"Top right radius" = "Poloměr pravého horního rohu" +"Transform" = "Transformace" +"Triangle arrow" = "Trojúhelníková šipka" +"Trigger" = "Spouštěč" +"True" = "Pravda" +"Truncate text" = "Zkrátit text" +"Truncate with an ellipsis" = "Zkrátit výpustkou" +"Try again" = "Zkusit znovu" +"Try another search or filter." = "Zkuste jiné hledání nebo filtr." +"Try another word, or look at every kind." = "Zkuste jiné slovo nebo zobrazte všechny druhy." +"Turn a layer into a component, reuse it, and change every copy at once" = "Převeďte vrstvu na komponentu, opakovaně ji používejte a měňte všechny kopie najednou" +"Two digits" = "Dvě číslice" +"Type" = "Typ" +"Type settings" = "Nastavení písma" +"Type the join code you were given, or paste an invite link." = "Zadejte obdržený kód pro připojení nebo vložte odkaz s pozvánkou." +"Typography" = "Typografie" +"Underline" = "Podtržení" +"Undo takes back only your own changes; what others changed since stays." = "Zpět vrací pouze vaše vlastní změny; pozdější změny ostatních zůstanou." +"Ungroup" = "Zrušit seskupení" +"Uniform" = "Rovnoměrný" +"Union" = "Sjednocení" +"Unions" = "Sjednocení" +"Unknown — treated as sRGB" = "Neznámý — zpracovává se jako sRGB" +"Unread" = "Nepřečtené" +"Unresolve" = "Znovu otevřít" +"Unsaved changes" = "Neuložené změny" +"Unsaved changes in {names}. Close the window and lose them?" = "Neuložené změny v {names}. Zavřít okno a zahodit je?" +"Unsaved changes: save first ({save}), or close the tab with {alt}-click to discard" = "Neuložené změny: nejprve uložte ({save}) nebo zavřete kartu kliknutím s {alt} a zahoďte je" +"Unsaved changes: save first, or close again with {key} to discard" = "Neuložené změny: nejprve uložte nebo zavřete znovu s {key} a zahoďte je" +"Up" = "Nahoru" +"Update plugin" = "Aktualizovat plugin" +"Update" = "Aktualizovat" +"Update from main" = "Aktualizovat z hlavního souboru" +"Update from selection" = "Aktualizovat z výběru" +"Updated {components} and {styles}" = "Aktualizováno – {components}, {styles}" +"Updated {name}" = "Aktualizováno: {name}" +"Uploads this file to a FigCraft server and keeps this tab in sync with it. You get a link to edit and a link to view." = "Nahraje tento soubor na server FigCraft a udržuje s ním tuto kartu synchronizovanou. Získáte odkaz pro úpravy a odkaz pro prohlížení." +"Uppercase" = "Velká písmena" +"Use a fixed value" = "Použít pevnou hodnotu" +"Use an expression, e.g. count + 1" = "Použít výraz, např. count + 1" +"Use as mask" = "Použít jako masku" +"Use auto layout" = "Použít automatické rozvržení" +"Use number keys for opacity" = "Nastavovat krytí číselnými klávesami" +"Use the layer's fill" = "Použít výplň vrstvy" +"Used in {files} · {instances}" = "Použití – {files} · {instances}" +"Username" = "Uživatelské jméno" +"Value" = "Hodnota" +"Uses variables: each layer shows them in its own mode" = "Používá proměnné: každá vrstva je zobrazuje ve vlastním režimu" +"Variable" = "Proměnná" +"Variable collections" = "Kolekce proměnných" +"Variable modes" = "Režimy proměnných" +"Variable width" = "Proměnlivá šířka" +"Variables" = "Proměnné" +"Variables JSON…" = "Proměnné JSON…" +"Variables store reusable values (colours, numbers, strings, booleans) with modes such as Light and Dark." = "Proměnné uchovávají opakovaně použitelné hodnoty (barvy, čísla, textové řetězce, logické hodnoty) s režimy jako Světlý a Tmavý." +"Variant" = "Varianta" +"Vector" = "Vektor" +"Vectors" = "Vektory" +"Version" = "Verze" +"Version history" = "Historie verzí" +"Version {version}" = "Verze {version}" +"Version {v} · {components} · {styles} · {variables}" = "Verze {v} · {components} · {styles} · {variables}" +"Vertical" = "Svisle" +"Vertical align" = "Svislé zarovnání" +"Vertical hex" = "Svislý šestiúhelník" +"Vertical padding" = "Svislé vnitřní odsazení" +"Vertical spacing" = "Svislé rozestupy" +"Vertical trim" = "Svislý ořez" +"View" = "Zobrazení" +"View link" = "Odkaz pro prohlížení" +"View link copied" = "Odkaz pro prohlížení zkopírován" +"View only" = "Pouze prohlížení" +"View only: you see every change as it happens but can't edit. Leave to keep a copy you can edit." = "Pouze prohlížení: vidíte každou změnu průběžně, ale nemůžete upravovat. Opuštěním relace si ponecháte kopii, kterou můžete upravovat." +"Viewing “{name}”" = "Prohlížení „{name}“" +"Violet" = "Fialová" +"Visibility" = "Viditelnost" +"Visible" = "Viditelné" +"Vivid" = "Živé" +"Warm" = "Teplé" +"Watch" = "Hodinky" +"Wavy" = "Vlnitý" +"Web" = "Web" +"Websites" = "Webové stránky" +"WebSocket URL" = "URL WebSocketu" +"WebSocket URL copied" = "URL WebSocketu zkopírována" +"Wedge" = "Klín" +"Weight" = "Tloušťka" +"What you try here changes this preview and the code below, not the file" = "Zdejší zkoušení mění tento náhled a kód níže, soubor zůstává beze změny" +"What changed since it was marked ready for dev" = "Co se změnilo od označení jako připravené pro vývoj" +"What is wrong with this file? The server's operator gets your report." = "Co je s tímto souborem v nepořádku? Vaše hlášení obdrží provozovatel serveru." +"What it's for" = "K čemu slouží" +"What this changed from isn't known: it changed before FigCraft kept a copy of ready-for-dev frames. Resolve the change (or mark it ready again) to compare from now on." = "Původní stav není znám: změna nastala dříve, než FigCraft uchovával kopie rámců připravených pro vývoj. Vyřešte změnu (nebo rámec znovu označte jako připravený), aby bylo možné porovnávat budoucí změny." +"While hovering" = "Při najetí ukazatelem" +"While pressing" = "Při stisku" +"White" = "Bílá" +"Who runs it, its terms and how long it keeps files" = "Kdo ho provozuje, jeho podmínky a doba uchovávání souborů" +"Why it changed" = "Důvod změny" +"Widgets" = "Widgety" +"Width" = "Šířka" +"Width point" = "Bod šířky" +"Width profile" = "Profil šířky" +"Wireframe kit" = "Sada pro wireframy" +"With the layers' export settings" = "S nastavením exportu vrstev" +"Wrap" = "Zalamovat" +"Wrap in new section" = "Zabalit do nové sekce" +"Yellow" = "Žlutá" +"Yesterday" = "Včera" +"You" = "Vy" +"You'll get the shared file as a new tab and edit it together." = "Sdílený soubor se otevře v nové kartě a budete ho upravovat společně." +"You're spotlighting: everyone follows your view" = "Sdílíte pohled: všichni sledují vaše zobrazení" +"Your copy of the file stays open" = "Vaše kopie souboru zůstane otevřená" +"Your copy stays open; the file stays on the server" = "Vaše kopie zůstane otevřená; soubor zůstane na serveru" +"Your name" = "Vaše jméno" +"Your name in comments" = "Vaše jméno v komentářích" +"Your system asks for reduced motion: animations stay off." = "Váš systém požaduje omezení pohybu: animace zůstanou vypnuté." +"Z" = "Z" +"Z to A" = "Od Z do A" +"Zoom" = "Přiblížení" +"Zoom around the pointer" = "Přibližovat kolem ukazatele" +"Zoom device to fill window" = "Přiblížit zařízení pro vyplnění okna" +"Zoom in" = "Přiblížit" +"Zoom out" = "Oddálit" +"Zoom to 100%" = "Přiblížit na 100 %" +"Zoom to 200%" = "Přiblížit na 200 %" +"Zoom to 50%" = "Přiblížit na 50 %" +"Zoom to fit" = "Přizpůsobit zobrazení obsahu" +"Zoom to selection" = "Přiblížit na výběr" +"Zoom tool: click to zoom in, drag an area" = "Nástroj přiblížení: kliknutím přiblížíte, tažením vyberete oblast" +"Zoom tool: zoom out" = "Nástroj přiblížení: oddálit" +"and {n} more" = { one = "a {n} další", other = "a další (počet: {n})" } +"bleed marks" = "značky spadávky" +"by {author}" = "autor: {author}" +"call any command its access allows" = "volat libovolný příkaz povolený jeho oprávněními" +"call only: {commands}" = "volat pouze: {commands}" +"can edit the document" = "může upravovat dokument" +"crop marks" = "ořezové značky" +"development: {path}" = "vývoj: {path}" +"e.g. count + 1" = "např. count + 1" +"e.g. count >= 3 and not done" = "např. count >= 3 and not done" +"figcraft:// links from a browser, chat or email open this app and join the session." = "Odkazy figcraft:// z prohlížeče, chatu nebo e-mailu otevřou tuto aplikaci a připojí k relaci." +"from {server}" = "ze serveru {server}" +"hidden" = "skryté" +"iOS" = "iOS" +"just now" = "právě teď" +"locked" = "zamknuté" +"no bleed" = "bez spadávky" +"nobody else here yet" = "zatím tu není nikdo další" +"now" = "nyní" +"or" = "nebo" +"put a widget on the canvas" = "umístit widget na plátno" +"read and edit the document" = "číst a upravovat dokument" +"read the document" = "číst dokument" +"reads the document" = "čte dokument" +"the plugin" = "plugin" +"this session only" = "pouze v této relaci" +"yesterday" = "včera" +"{instances} in {files}" = "{instances} · {files}" +"{language}: draft translation, waiting for a native speaker's review." = "{language}: návrh překladu, čeká na kontrolu rodilým mluvčím." +"{length} bleed" = "Spadávka {length}" +"{month} {day}, {year}" = "{day}. {month} {year}" +"{name} cleared from the list" = "Vymazáno ze seznamu: {name}" +"{name} is forgotten on this computer; the file stays on {server}" = "Zapomenuto v tomto počítači: {name}; soubor zůstává na serveru {server}" +"{name} is on the server." = "{name} je na serveru." +"{name} is spotlighting" = "{name} sdílí pohled" +"{name}\nClick to apply to the selection" = "{name}\nKliknutím použijete na výběr" +"{name}\nDrag onto the canvas, or click to place in the middle of the view.\nHold Alt (Option) while dropping onto an instance to swap it." = "{name}\nPřetáhněte na plátno nebo kliknutím umístěte doprostřed zobrazení.\nPři puštění na instanci podržte Alt (Option) a vyměňte ji." +"{name} (from {library})" = "{name} (z {library})" +"{name} (you)" = "{name} (vy)" +"{name} ({layers} layers)" = "{name} (vrstvy: {layers})" +"{name} ({tag}): {min} – {max}, default {default}. Double-click the slider to go back to the style's value; Escape while dragging cancels." = "{name} ({tag}): {min} – {max}, výchozí {default}. Dvojklikem na posuvník obnovíte hodnotu stylu; Escape během tažení akci zruší." +"{name} from {path}" = "{name} z {path}" +"{name} was removed from the server" = "Odebráno ze serveru: {name}" +"{name} · deleted on main" = "{name} · smazáno v hlavním souboru" +"{name} · deleted on the branch" = "{name} · smazáno ve větvi" +"{name} · not published" = "{name} · nepublikováno" +"{name} · on a server" = "{name} · na serveru" +"{name} · published version {v}" = "{name} · publikovaná verze {v}" +"{name} · version {v} on the server" = "{name} · verze {v} na serveru" +"{name}, in a live session" = "{name}, v živé relaci" +"{name}, online, open only to you" = "{name}, online, přístupný pouze vám" +"{name}, {kind}, {w} by {h}, selected" = "{name}, {kind}, {w} × {h}, vybráno" +"{n} added" = { one = "Přidáno: {n}", other = "Přidáno: {n}" } +"{n} autosave versions" = { one = "{n} automaticky uložená verze", other = "Automaticky uložené verze: {n}" } +"{n} changed" = { one = "Změněno: {n}", other = "Změněno: {n}" } +"{n} columns" = { one = "{n} sloupec", other = "Sloupce: {n}" } +"{n} components" = { one = "{n} komponenta", other = "Komponenty: {n}" } +"{n} components and styles have newer versions" = { one = "{n} komponenta nebo styl má novější verzi", other = "Komponenty a styly s novější verzí: {n}" } +"{n} conflicts to resolve" = { one = "{n} konflikt k vyřešení", other = "Konflikty k vyřešení: {n}" } +"{n} days ago" = { one = "Před {n} dnem", other = "Před {n} dny" } +"{n} files" = { one = "{n} soubor", other = "Soubory: {n}" } +"{n} hours ago" = { one = "Před {n} hodinou", other = "Před {n} hodinami" } +"{n} instances" = { one = "{n} instance", other = "Instance: {n}" } +"{n} layers" = { one = "{n} vrstva", other = "Vrstvy: {n}" } +"{n} layers as one file" = { one = "{n} vrstva jako jeden soubor", other = "Vrstvy jako jeden soubor: {n}" } +"{n} layers selected" = { one = "Vybrána {n} vrstva", other = "Vybrané vrstvy: {n}" } +"{n} layers · {parts}" = { one = "{n} vrstva · {parts}", other = "Vrstvy: {n} · {parts}" } +"{n} matches" = { one = "{n} shoda", other = "Shody: {n}" } +"{n} minutes ago" = { one = "Před {n} minutou", other = "Před {n} minutami" } +"{n} months ago" = { one = "Před {n} měsícem", other = "Před {n} měsíci" } +"{n} of {total}" = "{n} z {total}" +"{n} people joined" = { one = "Připojena {n} osoba", other = "Připojené osoby: {n}" } +"{n} preferred components" = { one = "{n} preferovaná komponenta", other = "Preferované komponenty: {n}" } +"{n} ready" = { one = "Připraveno: {n}", other = "Připraveno: {n}" } +"{n} removed" = { one = "Odebráno: {n}", other = "Odebráno: {n}" } +"{n} replies" = { one = "{n} odpověď", other = "Odpovědi: {n}" } +"{n} rows" = { one = "{n} řádek", other = "Řádky: {n}" } +"{n} styles" = { one = "{n} styl", other = "Styly: {n}" } +"{n} variables" = { one = "{n} proměnná", other = "Proměnné: {n}" } +"{n} weeks ago" = { one = "Před {n} týdnem", other = "Před {n} týdny" } +"{n} years ago" = { one = "Před {n} rokem", other = "Před {n} lety" } +"{n}d" = "{n} d" +"{n}h" = "{n} h" +"{n}m" = "{n} min" +"{n}w" = "{n} týd." +"{page}, nothing selected" = "{page}, nic nevybráno" +"{profile} (current)" = "{profile} (aktuální)" +"{property} is its value; {property ? \"a\" : \"b\"} picks a string. Other {…} stays as written." = "{property} dosadí hodnotu; {property ? \"a\" : \"b\"} vybere řetězec. Ostatní {…} zůstává beze změny." +"{server} can't say what became of your files (it is older than this app)." = "{server} nemůže zjistit stav vašich souborů (je starší než tato aplikace)." +"{server} · No longer on the server" = "{server} · Již není na serveru" +"{server} · {shared} · Opened {date}" = "{server} · {shared} · Otevřeno {date}" +"{tool} hold {key}" = "{tool} podržte {key}" +"{value} isn't a colour" = "{value} není barva" +"{when} · edited" = "{when} · upraveno" +"← ↑ → ↓" = "← ↑ → ↓" +"← → ↑ ↓" = "← → ↑ ↓" +"←" = "←" +"→, Space or N" = "→, mezerník nebo N" +"↵" = "↵" +"⇥ / ⇧⇥" = "⇥ / ⇧⇥" +"⌘ arrows" = "⌘ šipky" +"⌘ click" = "⌘ kliknutí" +"⌘ scroll" = "⌘ posouvání" +"⌥ drag" = "⌥ tažení" + +[commands] +"align.bottom" = "Zarovnat dolů" +"align.hcenter" = "Zarovnat vodorovné středy" +"align.left" = "Zarovnat vlevo" +"align.right" = "Zarovnat vpravo" +"align.top" = "Zarovnat nahoru" +"align.vcenter" = "Zarovnat svislé středy" +"annotation.add" = "Přidat anotaci" +"annotation.addCategory" = "Přidat kategorii anotací" +"annotation.categories" = "Kategorie anotací" +"annotation.edit" = "Upravit anotaci" +"annotation.editCategory" = "Upravit kategorii anotací" +"annotation.list" = "Vypsat anotace" +"annotation.remove" = "Odebrat anotaci" +"annotation.removeCategory" = "Smazat kategorii anotací" +"app.actions" = "Akce" +"app.preferences" = "Předvolby" +"arrange.back" = "Přesunout do pozadí" +"arrange.backward" = "Přesunout o úroveň níž" +"arrange.forward" = "Přenést o úroveň výš" +"arrange.front" = "Přenést do popředí" +"arrange.packH" = "Rozmístit těsně vodorovně" +"arrange.packV" = "Rozmístit těsně svisle" +"arrange.roundToPixels" = "Zaokrouhlit na pixely" +"arrange.tidy" = "Uspořádat" +"bool.exclude" = "Vyloučit výběr" +"bool.flatten" = "Sloučit booleovskou skupinu do vektoru" +"bool.intersect" = "Průnik výběru" +"bool.subtract" = "Odečíst výběr" +"bool.union" = "Sjednotit výběr" +"branch.archive" = "Archivovat větev" +"branch.create" = "Vytvořit větev" +"branch.list" = "Vypsat větve" +"branch.merge" = "Sloučit větev" +"branch.open" = "Otevřít větev" +"branch.review" = "Zkontrolovat větev" +"branch.updateFromMain" = "Aktualizovat z hlavního souboru" +"codeConnect.export" = "Exportovat propojení s kódem" +"codeConnect.import" = "Importovat propojení s kódem" +"codeConnect.remove" = "Odpojit od kódu" +"codeConnect.set" = "Propojit s kódem" +"collab.cursor" = "Zobrazit kurzor na pozici" +"collab.cursorChat" = "Chat u kurzoru" +"collab.diff" = "Zobrazit změny synchronizace" +"collab.files" = "Vaše online soubory" +"collab.follow" = "Sledovat" +"collab.forgetFile" = "Zapomenout online soubor" +"collab.host" = "Zahájit živou relaci" +"collab.join" = "Připojit se k živé relaci" +"collab.leave" = "Opustit živou relaci" +"collab.manageFile" = "Spravovat publikovaný soubor" +"collab.openFile" = "Otevřít online soubor" +"collab.peers" = "Lidé v tomto souboru" +"collab.publish" = "Publikovat na server" +"collab.recoverFile" = "Obnovit online soubor" +"collab.registerLinks" = "Otevírat odkazy s pozvánkou v aplikaci FigCraft" +"collab.report" = "Nahlásit soubor provozovateli serveru" +"collab.serverInfo" = "Informace o serveru" +"collab.share" = "Sdílet pomocí kódu pro připojení" +"collab.spotlight" = "Sdílet můj pohled" +"collab.stop" = "Ukončit živou relaci" +"command.batch" = "Spustit více příkazů" +"comment.add" = "Přidat komentář" +"comment.delete" = "Smazat komentář" +"comment.edit" = "Upravit komentář" +"comment.link" = "Kopírovat odkaz na komentář" +"comment.list" = "Vypsat komentáře" +"comment.markRead" = "Označit komentář jako přečtený" +"comment.move" = "Přesunout komentář" +"comment.next" = "Další komentář" +"comment.open" = "Otevřít komentář" +"comment.people" = "Lidé v komentářích" +"comment.react" = "Reagovat na komentář" +"comment.reply" = "Odpovědět na komentář" +"comment.resolve" = "Vyřešit komentář" +"comment.zoom" = "Přiblížit na komentáře" +"component.addProperty" = "Přidat vlastnost komponenty" +"component.addVariant" = "Přidat variantu" +"component.bindProperty" = "Navázat vrstvu na vlastnost" +"component.combineVariants" = "Sloučit jako varianty" +"component.create" = "Vytvořit komponentu" +"component.createMultiple" = "Vytvořit více komponent" +"component.deleteProperty" = "Smazat vlastnost komponenty" +"component.detach" = "Odpojit instanci" +"component.editProperty" = "Upravit vlastnost komponenty" +"component.exposeInstance" = "Zpřístupnit vnořenou instanci" +"component.goToMain" = "Přejít na hlavní komponentu" +"component.hideWhenPublishing" = "Skrýt při publikování" +"component.list" = "Vypsat komponenty" +"component.makeSlot" = "Vytvořit slot" +"component.playground" = "Zkušební prostředí komponenty" +"component.properties" = "Vlastnosti komponenty" +"component.pushChanges" = "Přenést změny do hlavní komponenty" +"component.removeSlot" = "Odebrat slot" +"component.resetInstance" = "Vrátit všechny změny" +"component.resetOverride" = "Zrušit přepsání" +"component.restoreMain" = "Obnovit hlavní komponentu" +"dev.compare" = "Porovnat změny" +"dev.focus" = "Zaměřený pohled" +"dev.resolveChange" = "Vyřešit změnu" +"dev.unfocus" = "Opustit zaměřený pohled" +"devResource.add" = "Přidat zdroj pro vývojáře" +"devResource.edit" = "Upravit zdroj pro vývojáře" +"devResource.list" = "Vypsat zdroje pro vývojáře" +"devResource.remove" = "Odebrat zdroj pro vývojáře" +"distribute.horizontal" = "Rozmístit vodorovné rozestupy" +"distribute.vertical" = "Rozmístit svislé rozestupy" +"doc.home" = "Domů" +"doc.list" = "Vypsat dokumenty" +"doc.nextTab" = "Další karta" +"doc.previousTab" = "Předchozí karta" +"doc.switch" = "Přepnout dokument" +"edit.copy" = "Kopírovat" +"edit.copyAsCss" = "Kopírovat jako CSS" +"edit.copyAsPng" = "Kopírovat jako PNG" +"edit.copyAsSvg" = "Kopírovat jako SVG" +"edit.copyAsText" = "Kopírovat jako text" +"edit.copyLink" = "Kopírovat odkaz na výběr" +"edit.copyProperties" = "Kopírovat vlastnosti" +"edit.cut" = "Vyjmout" +"edit.delete" = "Smazat" +"edit.duplicate" = "Duplikovat" +"edit.findReplace" = "Najít a nahradit" +"edit.paste" = "Vložit" +"edit.pasteOver" = "Vložit přes výběr" +"edit.pasteProperties" = "Vložit vlastnosti" +"edit.pasteReplace" = "Vložit a nahradit" +"edit.pickColor" = "Vybrat barvu" +"edit.redo" = "Znovu" +"edit.repeat" = "Opakovat poslední příkaz" +"edit.setDefaultProperties" = "Nastavit výchozí vlastnosti" +"edit.undo" = "Zpět" +"effect.add" = "Přidat efekt" +"effect.move" = "Přesunout efekt" +"effect.remove" = "Odebrat efekt" +"effect.set" = "Nastavit efekt" +"export.add" = "Přidat nastavení exportu" +"export.remove" = "Odebrat nastavení exportu" +"export.update" = "Upravit nastavení exportu" +"file.close" = "Zavřít kartu" +"file.colorProfile" = "Barevný profil" +"file.duplicate" = "Duplikovat soubor" +"file.export" = "Exportovat" +"file.exportFramesPdf" = "Exportovat rámce do PDF" +"file.exportLayers" = "Exportovat vrstvy" +"file.exportSvg" = "Exportovat výběr jako SVG" +"file.import" = "Importovat" +"file.new" = "Nový soubor návrhu" +"file.newFromTemplate" = "Nový ze šablony" +"file.open" = "Otevřít" +"file.openRecent" = "Otevřít nedávné" +"file.placeImage" = "Umístit obrázek" +"file.recover" = "Obnovit soubor" +"file.rename" = "Přejmenovat soubor" +"file.revert" = "Vrátit k uloženému stavu" +"file.save" = "Uložit" +"file.saveAs" = "Uložit jako" +"file.saveVersion" = "Uložit do historie verzí" +"file.versionHistory" = "Zobrazit historii verzí" +"fill.add" = "Přidat výplň" +"fill.move" = "Přesunout výplň" +"fill.pattern" = "Výplň vzorem" +"fill.remove" = "Odebrat výplň" +"fill.set" = "Nastavit výplň" +"frame.create" = "Vytvořit rámec" +"frame.presets" = "Vypsat předvolby rámců" +"frame.swapOrientation" = "Změnit orientaci" +"grid.add" = "Přidat mřížku rozvržení" +"grid.move" = "Přesunout mřížku rozvržení" +"grid.remove" = "Odebrat mřížku rozvržení" +"guide.add" = "Přidat vodítko" +"guide.clear" = "Odebrat všechna vodítka" +"guide.move" = "Přesunout vodítko" +"guide.remove" = "Odebrat vodítko" +"guide.select" = "Vybrat vodítko" +"help.gettingStarted" = "Začínáme" +"help.about" = "O aplikaci FigCraft" +"help.page" = "Stránka nápovědy" +"help.shortcuts" = "Klávesové zkratky" +"image.adjust" = "Upravit obrázek" +"image.deletePreset" = "Smazat předvolbu obrázku" +"image.place" = "Umístit obrázek" +"image.presets" = "Předvolby obrázků" +"image.savePreset" = "Uložit předvolbu obrázku" +"inspect.assets" = "Prozkoumat zdroje" +"inspect.code" = "Kód vrstvy" +"inspect.componentCode" = "Kód komponenty" +"inspect.properties" = "Prozkoumat vlastnosti" +"inspect.readyForDev" = "Připraveno pro vývoj" +"instance.create" = "Vytvořit instanci" +"instance.exposed" = "Zpřístupněné vnořené instance" +"instance.place" = "Umístit instanci" +"instance.resetSlot" = "Obnovit slot" +"instance.setProperties" = "Nastavit vlastnosti instance" +"instance.slotInsert" = "Vložit do slotu" +"instance.swap" = "Vyměnit instanci" +"instance.swapAt" = "Vyměnit instanci v bodě" +"layers.collapseAll" = "Sbalit vrstvy" +"layout.add" = "Přidat automatické rozvržení" +"layout.remove" = "Odebrat automatické rozvržení" +"layout.setTrack" = "Nastavit velikost stopy mřížky" +"layout.suggest" = "Navrhnout automatické rozvržení" +"libraries.open" = "Knihovny" +"libraries.publish" = "Publikovat knihovnu…" +"library.acceptUpdates" = "Přijmout aktualizace knihovny" +"library.add" = "Přidat knihovnu" +"library.aliasVariable" = "Vytvořit alias proměnné knihovny" +"library.applyStyle" = "Použít styl knihovny" +"library.bindVariable" = "Navázat proměnnou knihovny" +"library.extendCollection" = "Rozšířit kolekci knihovny" +"library.import" = "Importovat komponentu knihovny" +"library.importVariable" = "Importovat proměnnou knihovny" +"library.list" = "Vypsat knihovny" +"library.place" = "Umístit komponentu knihovny" +"library.publish" = "Publikovat knihovnu" +"library.publishToServer" = "Publikovat knihovnu na server" +"library.remove" = "Odebrat knihovnu" +"library.setVariableMode" = "Nastavit režim proměnných knihovny" +"library.swap" = "Vyměnit knihovnu" +"library.swapAt" = "Vyměnit instanci za komponentu knihovny" +"library.updates" = "Aktualizace knihovny" +"library.usage" = "Použití knihovny" +"measure.distances" = "Měřit vzdálenosti" +"measure.padding" = "Měřit vnitřní odsazení automatického rozvržení" +"node.create" = "Vytvořit vrstvu" +"node.get" = "Získat vrstvu" +"node.reorder" = "Změnit pořadí vrstvy" +"node.reparent" = "Přesunout vrstvu do" +"node.set" = "Nastavit vlastnosti" +"object.batchRename" = "Hromadně přejmenovat" +"object.convertToFrame" = "Převést na rámec" +"object.convertToGroup" = "Převést na skupinu" +"object.flipH" = "Převrátit vodorovně" +"object.flipV" = "Převrátit svisle" +"object.frameSelection" = "Vytvořit rámec z výběru" +"object.group" = "Seskupit výběr" +"object.hideOthers" = "Skrýt ostatní vrstvy" +"object.mask" = "Použít jako masku" +"object.moveToPage" = "Přesunout na stránku" +"object.opacityKeys" = "Krytí z číselných kláves" +"object.rasterize" = "Rastrovat výběr" +"object.releaseMask" = "Uvolnit masku" +"object.removeFill" = "Odebrat výplň" +"object.removeFrame" = "Odebrat rámec" +"object.removeStroke" = "Odebrat tah" +"object.rename" = "Přejmenovat" +"object.resizeToFit" = "Přizpůsobit velikost obsahu" +"object.rotate180" = "Otočit o 180°" +"object.rotateLeft" = "Otočit o 90° doleva" +"object.rotateRight" = "Otočit o 90° doprava" +"object.setThumbnail" = "Nastavit jako miniaturu" +"object.swapFillStroke" = "Prohodit výplň a tah" +"object.toggleLock" = "Zamknout/Odemknout výběr" +"object.toggleVisible" = "Zobrazit/Skrýt výběr" +"object.ungroup" = "Zrušit seskupení výběru" +"object.wrapInSection" = "Zabalit do nové sekce" +"page.add" = "Přidat stránku" +"page.delete" = "Smazat stránku" +"page.duplicate" = "Duplikovat stránku" +"page.list" = "Vypsat stránky" +"page.move" = "Přesunout stránku" +"page.rename" = "Přejmenovat stránku" +"page.select" = "Přejít na stránku" +"page.setBackground" = "Pozadí stránky" +"paint.documentColors" = "Barvy dokumentu" +"plugin.close" = "Zavřít panel pluginu" +"plugin.directory.install" = "Nainstalovat plugin z katalogu" +"plugin.directory.list" = "Procházet katalog pluginů" +"plugin.directory.publish" = "Publikovat plugin v katalogu" +"plugin.directory.unpublish" = "Zrušit publikování pluginu v katalogu" +"plugin.event" = "Použít ovládací prvek panelu pluginu" +"plugin.import" = "Importovat plugin z manifestu…" +"plugin.list" = "Vypsat pluginy" +"plugin.remove" = "Odebrat plugin" +"plugin.run" = "Spustit plugin" +"plugin.ui" = "Panel pluginu" +"plugins.manage" = "Spravovat pluginy…" +"plugins.runLast" = "Spustit poslední plugin" +"pref.highlightHover" = "Zvýraznit vrstvy pod ukazatelem" +"pref.keepTool" = "Po použití ponechat nástroj vybraný" +"pref.language" = "Jazyk rozhraní" +"pref.nudge" = "Velikost posunu" +"pref.numberKeysOpacity" = "Nastavovat krytí číselnými klávesami" +"pref.publishServer" = "Server pro online sdílení" +"pref.reduceMotion" = "Omezit pohyb" +"pref.renameDuplicates" = "Přejmenovávat duplikované vrstvy" +"pref.showDimensions" = "Zobrazit rozměry objektů" +"pref.userName" = "Vaše jméno v komentářích" +"proto.action.add" = "Přidat akci prototypu" +"proto.action.move" = "Změnit pořadí akce prototypu" +"proto.action.remove" = "Odebrat akci prototypu" +"proto.action.set" = "Upravit akci prototypu" +"proto.closePreview" = "Zavřít náhled prototypu" +"proto.conditional.addBlock" = "Přidat větev Jinak pokud / Jinak" +"proto.conditional.removeBlock" = "Odebrat větev Pokud / Jinak pokud / Jinak" +"proto.conditional.setCondition" = "Upravit podmínku" +"proto.evaluate" = "Vyhodnotit výraz prototypu" +"proto.flow.add" = "Přidat počáteční bod toku" +"proto.flow.remove" = "Odebrat tok" +"proto.flow.rename" = "Přejmenovat tok" +"proto.interaction.add" = "Přidat interakci" +"proto.interaction.clear" = "Odebrat všechny interakce" +"proto.interaction.remove" = "Odebrat interakci" +"proto.interaction.set" = "Upravit interakci" +"proto.present" = "Prezentovat" +"proto.presentOptions" = "Možnosti prezentace" +"proto.preview" = "Otevřít náhled prototypu" +"proto.settings" = "Nastavení prototypu" +"section.toggleContents" = "Skrýt/Zobrazit obsah sekce" +"select.add" = "Přidat do výběru" +"select.all" = "Vybrat vše" +"select.area" = "Vybrat oblast" +"select.byName" = "Vybrat vrstvy podle názvu" +"select.children" = "Vybrat podřízené vrstvy" +"select.inverse" = "Obrátit výběr" +"select.layersAt" = "Vrstvy v bodě" +"select.matching" = "Vybrat odpovídající vrstvy" +"select.next" = "Vybrat další vrstvu stejné úrovně" +"select.none" = "Zrušit výběr" +"select.parent" = "Vybrat nadřazenou vrstvu" +"select.previous" = "Vybrat předchozí vrstvu stejné úrovně" +"select.remove" = "Odebrat z výběru" +"select.sameEffect" = "Vybrat stejný efekt" +"select.sameFill" = "Vybrat stejnou výplň" +"select.sameFont" = "Vybrat stejné písmo" +"select.sameInstance" = "Vybrat stejnou instanci" +"select.sameProperties" = "Vybrat stejné vlastnosti" +"select.sameStroke" = "Vybrat stejný tah" +"select.sameText" = "Vybrat stejné vlastnosti textu" +"select.set" = "Vybrat" +"shape.arrow" = "Šipka" +"shape.ellipse" = "Elipsa" +"shape.line" = "Čára" +"shape.polygon" = "Mnohoúhelník" +"shape.rectangle" = "Obdélník" +"shape.star" = "Hvězda" +"shapeBuilder.merge" = "Sloučit oblasti" +"shapeBuilder.mode" = "Režim tvorby tvarů" +"shapeBuilder.regions" = "Oblasti tvorby tvarů" +"shapeBuilder.remove" = "Odebrat oblasti" +"stroke.add" = "Přidat tah" +"stroke.brush" = "Štětec" +"stroke.move" = "Přesunout tah" +"stroke.remove" = "Odebrat tah" +"stroke.set" = "Nastavit tah" +"stroke.widthProfile" = "Profil šířky" +"style.apply" = "Použít styl" +"style.bind" = "Navázat proměnnou ve stylu" +"style.create" = "Vytvořit styl" +"style.delete" = "Smazat styl" +"style.detach" = "Odpojit styl" +"style.duplicate" = "Duplikovat styl" +"style.list" = "Vypsat styly" +"style.move" = "Přesunout styly" +"style.renameFolder" = "Přejmenovat složku stylů" +"style.update" = "Upravit styl" +"text.alignCenter" = "Zarovnat na střed" +"text.alignJustify" = "Do bloku" +"text.alignLeft" = "Zarovnat vlevo" +"text.alignRight" = "Zarovnat vpravo" +"text.bold" = "Tučné" +"text.bulletList" = "Odrážkový seznam" +"text.case" = "Velikost písmen" +"text.caseLower" = "Malá písmena" +"text.caseOriginal" = "Původní velikost písmen" +"text.caseSmallCaps" = "Kapitálky" +"text.caseTitle" = "Velká počáteční písmena slov" +"text.caseUpper" = "Velká písmena" +"text.create" = "Text" +"text.decoration" = "Dekorace" +"text.edit.begin" = "Upravit text" +"text.edit.caret" = "Nastavit textový kurzor" +"text.edit.end" = "Ukončit úpravy textu" +"text.edit.insert" = "Psát text" +"text.edit.key" = "Klávesa pro text" +"text.edit.preedit" = "Skládat text (IME)" +"text.edit.selectLine" = "Vybrat řádek" +"text.edit.selectWord" = "Vybrat slovo" +"text.edit.selection" = "Výběr textu" +"text.endPreview" = "Ukončit náhled textu" +"text.fonts" = "Vypsat písma" +"text.italic" = "Kurzíva" +"text.lineHeightDown" = "Zmenšit výšku řádku" +"text.lineHeightUp" = "Zvětšit výšku řádku" +"text.link" = "Vytvořit odkaz" +"text.listIndent" = "Zvětšit odsazení seznamu" +"text.listOutdent" = "Zmenšit odsazení seznamu" +"text.listStyle" = "Styl seznamu" +"text.maxLines" = "Max. řádků" +"text.numberList" = "Číslovaný seznam" +"text.onPath" = "Text na cestě" +"text.paragraphIndent" = "Odsazení odstavce" +"text.paragraphSpacing" = "Mezery mezi odstavci" +"text.pathOptions" = "Možnosti textu na cestě" +"text.preview" = "Náhled změny textu" +"text.removeFromPath" = "Odebrat text z cesty" +"text.set" = "Nastavit text" +"text.setFeatures" = "Funkce OpenType" +"text.setVariations" = "Osy variabilního písma" +"text.sizeDown" = "Zmenšit písmo" +"text.sizeUp" = "Zvětšit písmo" +"text.strikethrough" = "Přeškrtnutí" +"text.style" = "Nastavit styl části textu" +"text.trackingDown" = "Zmenšit prostrkání znaků" +"text.trackingUp" = "Zvětšit prostrkání znaků" +"text.underline" = "Podtržení" +"text.weightDown" = "Zmenšit tloušťku písma" +"text.weightUp" = "Zvětšit tloušťku písma" +"tool.arrow" = "Šipka" +"tool.comment" = "Komentář" +"tool.ellipse" = "Elipsa" +"tool.frame" = "Rámec" +"tool.hand" = "Ruka" +"tool.line" = "Čára" +"tool.move" = "Přesunout" +"tool.pen" = "Pero" +"tool.pencil" = "Tužka" +"tool.pencilBrush" = "Štětec tužky" +"tool.place" = "Umístit pomocí nástroje" +"tool.polygon" = "Mnohoúhelník" +"tool.rectangle" = "Obdélník" +"tool.scale" = "Měřítko" +"tool.scaleAnchor" = "Kotva měřítka" +"tool.section" = "Sekce" +"tool.set" = "Vybrat nástroj" +"tool.shapeBuilder" = "Tvorba tvarů" +"tool.slice" = "Výřez" +"tool.star" = "Hvězda" +"tool.text" = "Text" +"transform.move" = "Přesunout" +"transform.moveTo" = "Přesunout na" +"transform.nudge" = "Posunout" +"transform.nudgeSize" = "Změnit velikost o velikost posunu" +"transform.resize" = "Změnit velikost" +"transform.rotate" = "Otočit" +"transform.rotationOrigin" = "Přesunout střed otáčení" +"transform.scale" = "Měřítko" +"transform.setRotationOrigin" = "Nastavit střed otáčení" +"variable.addMode" = "Přidat režim" +"variable.bind" = "Navázat proměnnou" +"variable.create" = "Vytvořit proměnnou" +"variable.createCollection" = "Vytvořit kolekci proměnných" +"variable.delete" = "Smazat proměnnou" +"variable.deleteCollection" = "Smazat kolekci" +"variable.duplicate" = "Duplikovat proměnnou" +"variable.export" = "Exportovat proměnné" +"variable.import" = "Importovat proměnné" +"variable.list" = "Vypsat proměnné" +"variable.moveMode" = "Přesunout režim" +"variable.removeMode" = "Smazat režim" +"variable.renameCollection" = "Přejmenovat kolekci" +"variable.renameMode" = "Přejmenovat režim" +"variable.resetOverride" = "Zrušit přepsání proměnné" +"variable.set" = "Nastavit hodnotu proměnné" +"variable.setMode" = "Nastavit režim proměnných" +"variable.update" = "Upravit proměnnou" +"vector.create" = "Vektor" +"vector.deleteHeal" = "Smazat a zacelit výběr" +"vector.edit.addVertex" = "Přidat bod" +"vector.edit.begin" = "Upravit vektor" +"vector.edit.bend" = "Ohnout segment" +"vector.edit.bounds" = "Hranice vybraných bodů" +"vector.edit.connect" = "Propojit body" +"vector.edit.cornerRadius" = "Poloměr zaoblení bodu" +"vector.edit.cut" = "Rozříznout cestu" +"vector.edit.delete" = "Smazat body" +"vector.edit.end" = "Dokončit úpravy" +"vector.edit.erase" = "Gumovat" +"vector.edit.lasso" = "Vybrat lasem" +"vector.edit.mirroring" = "Zrcadlení táhel" +"vector.edit.moveHandles" = "Přesunout táhla" +"vector.edit.moveVertices" = "Přesunout body" +"vector.edit.nudge" = "Posunout body" +"vector.edit.paint" = "Plechovka barvy" +"vector.edit.pen" = "Bod pera" +"vector.edit.penEnd" = "Ukončit cestu pera" +"vector.edit.position" = "Poloha bodu" +"vector.edit.resize" = "Změnit velikost výběru bodů" +"vector.edit.rotate" = "Otočit body" +"vector.edit.select" = "Vybrat body" +"vector.edit.selectAll" = "Vybrat všechny body" +"vector.edit.setHandle" = "Nastavit táhlo" +"vector.edit.smooth" = "Vyhladit nebo zostřit body" +"vector.edit.state" = "Stav úprav vektoru" +"vector.edit.strokeCap" = "Zakončení tahu v bodě" +"vector.edit.strokeJoin" = "Spojení tahu v bodě" +"vector.edit.tool" = "Nástroj úprav vektoru" +"vector.edit.transform" = "Transformovat body" +"vector.edit.widthPoint" = "Bod šířky" +"vector.flatten" = "Sloučit do vektoru" +"vector.join" = "Spojit výběr" +"vector.offset" = "Odsadit cestu" +"vector.outlineStroke" = "Převést tah na obrysy" +"vector.reverse" = "Obrátit směr cesty" +"vector.simplify" = "Zjednodušit vektor" +"vector.smoothJoin" = "Hladce spojit výběr" +"version.autosave" = "Automaticky uložit verzi" +"version.delete" = "Smazat verzi" +"version.duplicate" = "Duplikovat verzi" +"version.exitPreview" = "Zpět na aktuální verzi" +"version.list" = "Vypsat verze" +"version.preview" = "Zobrazit verzi" +"version.rename" = "Přejmenovat verzi" +"version.restore" = "Obnovit verzi" +"view.assets" = "Panel zdrojů" +"view.comments" = "Komentáře" +"view.contextMenu" = "Zobrazit kontextovou nabídku" +"view.design" = "Panel Návrh" +"view.designPrototype" = "Přepnout mezi Návrhem a Prototypem" +"view.devMode" = "Režim pro vývojáře" +"view.frameOutlines" = "Obrysy rámců" +"view.get" = "Získat zobrazení" +"view.layers" = "Panel vrstev" +"view.layoutGrids" = "Mřížky rozvržení" +"view.leftSidebar" = "Zobrazit/Skrýt levý postranní panel" +"view.maskOutlines" = "Obrysy masek" +"view.multiplayerCursors" = "Kurzory spolupracovníků" +"view.nextFrame" = "Přiblížit na další rámec" +"view.nextPage" = "Další stránka" +"view.nextRegion" = "Zaměřit další oblast" +"view.outlines" = "Obrysy" +"view.outlinesHiddenLayers" = "Zahrnout skryté vrstvy do obrysů" +"view.outlinesObjectBounds" = "Zahrnout hranice objektů do obrysů" +"view.outlinesSelection" = "Obrysy výběru" +"view.pan" = "Posunout zobrazení" +"view.panelWidths" = "Obnovit šířky panelů" +"view.pixelGrid" = "Pixelová mřížka" +"view.pixelPreview" = "Pixelový náhled" +"view.prevFrame" = "Přiblížit na předchozí rámec" +"view.prevPage" = "Předchozí stránka" +"view.previousRegion" = "Zaměřit předchozí oblast" +"view.proofSrgb" = "Kontrolní náhled sRGB" +"view.fullscreen" = "Celá obrazovka" +"view.prototype" = "Panel Prototyp" +"view.rulers" = "Pravítka" +"view.set" = "Nastavit zobrazení" +"view.slices" = "Výřezy" +"view.snapGeometry" = "Přichytávat ke geometrii" +"view.snapObjects" = "Přichytávat k objektům" +"view.snapPixel" = "Přichytávat k pixelové mřížce" +"view.themeDark" = "Tmavý motiv" +"view.themeLight" = "Světlý motiv" +"view.themeSystem" = "Podle systémového motivu" +"view.toggleUi" = "Zobrazit/Skrýt rozhraní" +"view.zoom100" = "Přiblížit na 100 %" +"view.zoom200" = "Přiblížit na 200 %" +"view.zoom50" = "Přiblížit na 50 %" +"view.zoomAt" = "Nástroj přiblížení" +"view.zoomFit" = "Přizpůsobit zobrazení obsahu" +"view.zoomIn" = "Přiblížit" +"view.zoomOut" = "Oddálit" +"view.zoomSelection" = "Přiblížit na výběr" +"widget.click" = "Kliknout na widget" +"widget.insert" = "Vložit widget" +"widget.list" = "Vypsat widgety" +"window.focus" = "Přenést okno do popředí" +"window.new" = "Nové okno" +"template.list" = "Vypsat šablony" + +[menu] +"bool.exclude" = "Vyloučit" +"bool.flatten" = "Sloučit do vektoru" +"bool.intersect" = "Průnik" +"bool.subtract" = "Odečíst" +"bool.union" = "Sjednotit" +"file.duplicate" = "Duplikovat" +"file.import" = "Importovat ze souboru…" +"file.rename" = "Přejmenovat" +"libraries.open" = "Otevřít knihovny" +"select.sameEffect" = "Efekt" +"select.sameFill" = "Výplň" +"select.sameFont" = "Písmo" +"select.sameInstance" = "Instance" +"select.sameProperties" = "Vlastnosti" +"select.sameStroke" = "Tah" +"select.sameText" = "Vlastnosti textu" +"text.alignCenter" = "Zarovnat text na střed" +"text.alignJustify" = "Zarovnat text do bloku" +"text.alignLeft" = "Zarovnat text vlevo" +"text.alignRight" = "Zarovnat text vpravo" +"view.assets" = "Zdroje" +"view.design" = "Návrh" +"view.layers" = "Vrstvy" +"view.outlines" = "Zobrazit obrysy" +"view.outlinesHiddenLayers" = "Zahrnout skryté vrstvy" +"view.outlinesObjectBounds" = "Zahrnout hranice objektů" +"view.outlinesSelection" = "Zobrazit obrysy výběru" +"view.prototype" = "Prototyp" +"view.themeDark" = "Tmavý" +"view.themeLight" = "Světlý" +"view.themeSystem" = "Podle systému" diff --git a/crates/ui-egui/src/i18n_tests.rs b/crates/ui-egui/src/i18n_tests.rs index 768434e3..eba176e8 100644 --- a/crates/ui-egui/src/i18n_tests.rs +++ b/crates/ui-egui/src/i18n_tests.rs @@ -308,6 +308,11 @@ fn system_languages_pick_the_first_one_with_a_catalog() { let code = |pref: &str, system: Option<&str>| LANGS[resolve(pref, system)].code; assert_eq!(code("system", Some("fr-CA")), "fr"); assert_eq!(code("system", Some("de_CH.UTF-8")), "de"); + assert_eq!(code("system", Some("cs_CZ.UTF-8")), "cs"); + assert_eq!(code("system", Some("cs-CZ,en-US")), "cs"); + assert_eq!(code("cs", None), "cs"); + assert_eq!(LANGS[resolve("cs", None)].name, "Čeština"); + assert!(LANGS[resolve("cs", None)].draft); assert_eq!(code("system", Some("pt-BR")), "pt-BR"); // Portugal's Portuguese and a bare "pt" read the Brazilian catalog. assert_eq!(code("system", Some("pt-PT")), "pt-BR"); @@ -355,8 +360,10 @@ fn french_and_portuguese_count_zero_as_singular() { for code in ["fr", "pt-BR"] { assert!(one(code, 0) && one(code, 1) && !one(code, 2), "{code}"); } - for code in ["en", "es", "de"] { - assert!(!one(code, 0) && one(code, 1) && !one(code, 2), "{code}"); + for code in ["en", "es", "de", "cs"] { + for n in [0, 1, 2, 3, 4, 5, 21] { + assert_eq!(one(code, n), n == 1, "{code}: {n}"); + } } } diff --git a/docs/gaps.md b/docs/gaps.md index 34c4f439..a89b43d2 100644 --- a/docs/gaps.md +++ b/docs/gaps.md @@ -1,6 +1,6 @@ # Where FigCraft falls short of Figma -> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (`.fig` export: instance sizes, variables with modes, shared styles, variable-width strokes; sharing with a join code; text box sizes measured against documents re-saved by other software; live sessions per document; .fig export checked by opening written files in other software; experimental .fig export; keyboard shortcut parity suite and bindings; Simplified Chinese draft catalog; Latin American Spanish overlay; prototyping tail: gamepad triggers, widgets in prototypes, mode lookups; plugin directory on figcraft-server; Japanese and Korean draft catalogs and CJK UI fonts; plugin widgets and the plugin panel tail; French, German and Brazilian Portuguese draft catalogs; cursor chat and spotlight in live sessions; layers and assets panels behaviour suite and fixes; vector multi-edit and edit tail; dev resources links; extended collections tail; branch version history and finer list merges; comments and version history behaviour suite and fixes; canvas navigation, guides and grids behaviour suite and fixes; `.fig` import: editable vector networks, more layer kinds, variable prototype actions; `.fig` import, best effort: gap 1 down to its tail; Windows QA pass: everyday workflows on Windows 11, eight fixes incl. unsaved work kept after a crash or a forced quit; Display P3: gamut warning and soft-proof (true P3 blocked upstream); several windows; localization layer with a draft Spanish catalog; hosting figcraft-server: wss in the desktop app, server releases, deployment guide; plugin panels and settings; canvas fixes: boolean hit testing on the result, group drags, frame outlines and slices; code connect; stretch and scatter brushes, pen pressure; text on a path and pattern fills; team libraries on the server and swap library; branches: create, update from main, review and merge; animated GIF fills and TIFF images; Open recent, outlines for the selection and mask outlines: menu breadth 100%; extended collections, variables import/export, gradient stop and variant bindings: gap 14 down to its tail) · **Target:** Figma Design (desktop app 126.10.7) +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-15 · **Change:** minor (Czech draft catalog; `.fig` export: instance sizes, variables with modes, shared styles, variable-width strokes; sharing with a join code; text box sizes measured against documents re-saved by other software; live sessions per document; .fig export checked by opening written files in other software; experimental .fig export; keyboard shortcut parity suite and bindings; Simplified Chinese draft catalog; Latin American Spanish overlay; prototyping tail: gamepad triggers, widgets in prototypes, mode lookups; plugin directory on figcraft-server; Japanese and Korean draft catalogs and CJK UI fonts; plugin widgets and the plugin panel tail; French, German and Brazilian Portuguese draft catalogs; cursor chat and spotlight in live sessions; layers and assets panels behaviour suite and fixes; vector multi-edit and edit tail; dev resources links; extended collections tail; branch version history and finer list merges; comments and version history behaviour suite and fixes; canvas navigation, guides and grids behaviour suite and fixes; `.fig` import: editable vector networks, more layer kinds, variable prototype actions; `.fig` import, best effort: gap 1 down to its tail; Windows QA pass: everyday workflows on Windows 11, eight fixes incl. unsaved work kept after a crash or a forced quit; Display P3: gamut warning and soft-proof (true P3 blocked upstream); several windows; localization layer with a draft Spanish catalog; hosting figcraft-server: wss in the desktop app, server releases, deployment guide; plugin panels and settings; canvas fixes: boolean hit testing on the result, group drags, frame outlines and slices; code connect; stretch and scatter brushes, pen pressure; text on a path and pattern fills; team libraries on the server and swap library; branches: create, update from main, review and merge; animated GIF fills and TIFF images; Open recent, outlines for the selection and mask outlines: menu breadth 100%; extended collections, variables import/export, gradient stop and variant bindings: gap 14 down to its tail) · **Target:** Figma Design (desktop app 126.10.7) Every known shortfall against Figma, one entry each, ranked by how much it stops a Figma user from doing real work in FigCraft. Agents: pick work from the top unless the owner says otherwise. The @@ -18,7 +18,7 @@ No alpha blockers: the alpha gate in [`roadmap.md`](roadmap.md#alpha-gate) passe | 2 | Multiplayer and sharing are a preview, without accounts (**beta blocker**) | Feature | 42–84 | [collaboration-parity](collaboration-parity.md) | | 3 | Nothing checked against real Figma files | Fidelity | 15–30 | [target-app-parity](target-app-parity.md) | | 4 | Interaction fidelity not compared tool by tool | UI/UX | 40–60 | [ui-parity](ui-parity.md) | -| 5 | Localization: English plus unreviewed Spanish (and Latin American Spanish), French, German, Brazilian Portuguese, Japanese, Korean and Simplified Chinese drafts | Localization | 29–51 | [localization-parity](localization-parity.md) | +| 5 | Localization: English plus unreviewed Spanish (and Latin American Spanish), French, German, Brazilian Portuguese, Japanese, Korean, Simplified Chinese and Czech drafts | Localization | 29–51 | [localization-parity](localization-parity.md) | | 6 | Plugins: widgets take clicks only, a self-hosted directory but no public catalogue; Figma's plugins don't run | Ecosystem | 8–26 | [target-app-parity](target-app-parity.md) | | 7 | CPU canvas where Figma uses the GPU | Hardware/performance | 30–60 | [hardware-parity](hardware-parity.md) | | 8 | Platform QA: Linux and the browser left (Windows pass done 2026-10-11) | Stability/platforms | 10–20 | [hardware-parity](hardware-parity.md) | @@ -144,14 +144,15 @@ No alpha blockers: the alpha gate in [`roadmap.md`](roadmap.md#alpha-gate) passe ### 5. Localization: English plus unreviewed drafts - **Missing:** native reviews of the Spanish, French, German, Brazilian Portuguese, Japanese, - Korean and Simplified Chinese drafts and the Latin American Spanish overlay, the 25 newest strings - in five drafts, Hindi, Arabic, Indonesian and Vietnamese, localized engine messages and number + Korean, Simplified Chinese and Czech drafts and the Latin American Spanish overlay, later strings + in older drafts, Hindi, Arabic, Indonesian and Vietnamese, localized engine messages and number formatting; CJK UI text on the web without the craft-fonts CJK build. - **Evidence (measured from source):** the layer landed 2026-10-11: catalogs in - `crates/ui-egui/locales/` (1,371 UI keys plus 524 command labels and 29 menu wordings), + `crates/ui-egui/locales/` (as of 2026-10-15: 1,577 UI keys plus 557 command labels and 31 menu wordings), Preferences ▸ Language, `pref.language`; `en.toml` is complete, and `es.toml`, `fr.toml`, - `de.toml`, `pt-BR.toml`, `ja.toml`, `ko.toml` and `zh-Hans.toml` (2026-10-12) are machine drafts - (all but `zh-Hans.toml` lack the 25 newest strings), with `es-419.toml` a Latin American overlay + `de.toml`, `pt-BR.toml`, `ja.toml`, `ko.toml`, `zh-Hans.toml` and `cs.toml` are machine drafts + (Czech covers all 2,165 entries as of 2026-10-15; the other drafts fall back to English for later additions), + with `es-419.toml` a Latin American overlay listing only what differs from Spanish (only Spanish is held to completeness by the check; the others show English for strings added later). CJK UI text uses an installed CJK face the desktop app loads when something on screen needs it @@ -394,6 +395,7 @@ No alpha blockers: the alpha gate in [`roadmap.md`](roadmap.md#alpha-gate) passe | Date | Change | Summary | |---|---|---| +| 2026-10-15 | minor | Czech draft catalog: 1,577 UI keys, 557 command labels and 31 menu wordings (2,165 entries), marked as awaiting native review and kept out of `COMPLETE`. The build discovers `cs.toml` automatically; System resolves cs and cs-CZ without font changes. Singular uses `n == 1`; count-neutral `other` forms cover 0, 2–4 and 5+. Localization grades and estimates unchanged. | | 2026-10-13 | minor | Gap 1: the experimental `.fig` export writes instance sizes (resized, filling an auto layout, scaled), variables with modes and bindings, shared styles and variable-width strokes, and the import reads them back. Checked by opening written files in other software: resized and scaled instances keep their size and lay their layers out for it, variables with their modes and colour bindings resolve there (a frame set to another mode shows that mode's colours, also inside instances), colour, text, effect and grid styles are listed, and variable-width strokes that are the same on both sides of the path draw with their width; number, string and boolean bindings and bindings on effects, layout guides and gradient stops come across as the values they give but did not show as bound there (their entries now also name the layer field they set, not yet checked there), and strokes wider on one side of the path are written as filled outlines, no longer editable strokes there (the stroke itself is kept as plugin data and our own import puts it back; not yet checked there). Hours and the ranking unchanged | | 2026-10-12 | minor | Gap 2: your online files landed (the app records the files it put on a server with their owner tokens, Home ▸ Online lists them and opens them again as their owner, with sharing, rename, removal and forget from the list; one request per server tells which are still there; tabs mark files in a live session). What is left is unchanged: accounts, teams and per-person permissions, shared comments and versions. Hours unchanged | | 2026-10-12 | minor | Gap 2: sharing with a join code (Share ▸ Online or Local network, one Start sharing button, a short code to give others, one join field for a code or a link; the server names links with codes and limits wrong ones) added to the landed list; usability, so the estimate and ranking are unchanged | diff --git a/docs/localization-parity.md b/docs/localization-parity.md index 99f0f1a7..977a36f9 100644 --- a/docs/localization-parity.md +++ b/docs/localization-parity.md @@ -1,11 +1,11 @@ # Localization parity -> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-12 · **Change:** minor (draft catalogs catch up: every draft translates every string again; Simplified Chinese draft catalog) · **Target:** Figma Design (desktop app 126.10.7) +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-15 · **Change:** minor (Czech draft catalog; draft catalogs catch up: every draft translates every string again; Simplified Chinese draft catalog) · **Target:** Figma Design (desktop app 126.10.7) FigCraft's interface has a localization layer with an English catalog and Spanish (with a Latin -American overlay), French, German, Brazilian Portuguese, Japanese, Korean and Simplified Chinese +American overlay), French, German, Brazilian Portuguese, Japanese, Korean, Simplified Chinese and Czech drafts (machine-drafted, waiting for native speakers' review). This page lists the twelve key -languages of the craftrules standard, then the other languages Figma ships. How to add a +languages of the craftrules standard, then additional languages. How to add a language: [`translating.md`](translating.md). ## What Figma ships @@ -17,18 +17,18 @@ browser's page translation. The `.lproj` folders in `/Applications/Figma.app` (6 Electron/Chromium locale packs, not Figma's own UI languages. Text *content* in any script is supported by both apps (CJK, Arabic and Devanagari shaping, IME); Figma has no vertical text. -## What FigCraft has (measured 2026-10-12, from source) +## What FigCraft has (measured 2026-10-15, from source) - **Layer:** one TOML catalog per language in `crates/ui-egui/locales/`, baked into the binary by the UI crate's build script (desktop and web; nothing read at run time). Keys are the English text (`tr("Fill")`, `trf` for `{named}` placeholders, `trn` for counts with one/other plural forms), so a missing translation shows English, never a raw key. One English text that needs two translations takes a context (`"Fill|sizing"`). -- **Strings:** 1,417 UI keys in `en.toml` (36 with plural forms; ~110 are labels from engine and - document data, such as tool names, blend modes and Dev Mode properties) plus 536 command labels - and 29 menu wordings by command id: 1,982 entries. Command ids, the CLI, MCP and the control +- **Strings:** 1,577 UI keys in `en.toml` (38 with plural forms; ~110 are labels from engine and + document data, such as tool names, blend modes and Dev Mode properties) plus 557 command labels + and 31 menu wordings by command id: 2,165 entries. Command ids, the CLI, MCP and the control channel stay English. Accessibility names come from the same strings. -- **Language preference:** Preferences ▸ Language (System, English, Deutsch, Español, Español +- **Language preference:** Preferences ▸ Language (System, English, Čeština, Deutsch, Español, Español (Latinoamérica), Français, 日本語, 한국어, Português (Brasil), 简体中文), applied at once without a restart; System takes the first of the OS's preferred languages that has a catalog (Windows' language list, macOS AppleLanguages, `LANGUAGE` then the locale variables on Linux and BSD; a regional tag @@ -36,7 +36,8 @@ supported by both apps (CJK, Arabic and Devanagari shaping, IME); Figma has no v Latin American and US Spanish tags to es-419; zh, zh-CN, zh-SG and zh-Hans read zh-Hans, while Traditional Chinese (zh-Hant, zh-TW, zh-HK, zh-MO) has no catalog and reads English or the next OS language, never Simplified) or the browser's language on the web. - `pref.language {language}` sets it from the CLI, MCP and the control channel. + `pref.language {language}` sets it from the CLI, MCP and the control channel. Czech tags + (`cs`, `cs-CZ`, `cs_CZ.UTF-8`) resolve to Čeština automatically. - **Regional overlays:** a regional catalog whose language has a catalog lists only what differs (`es-419.toml` over `es.toml`); its UI strings, command labels and menu wordings read the overlay, then the base language, then English. @@ -44,12 +45,13 @@ supported by both apps (CJK, Arabic and Devanagari shaping, IME); Figma has no v lacks, keys no code uses, unknown command ids, placeholders that differ from English, overlay entries that read as in their base language and, for complete languages (Spanish), anything untranslated. The other drafts are not held to it: a string added later shows English there - until someone translates it. Every draft translates every string as of 2026-10-12 (checked by - adding each to `COMPLETE` locally and running the check). + until someone translates it. Czech covers every current string (checked by temporarily + adding `cs` to `COMPLETE`); the older drafts have 2,077 of the current 2,165 entries. - **Not yet localized:** messages the engine writes (errors, a few toasts, Dev Mode property values such as "inside"), number formatting (decimal points stay `.`), and plural forms beyond one/other (French and Brazilian Portuguese take the singular for 0 as well; Japanese, Korean and Chinese - have one form; CLDR's "many" for millions reads as the plural). + have one form; CLDR's "many" for millions reads as the plural). Czech uses `one` for 1 and + count-neutral `other` wording for 0, 2–4 and 5+; it needs no script or font changes. - **Script support in documents:** Unicode bidi with Arabic shaping and mirrored brackets in text layers; right-to-left list markers and indents; right-to-left names in the layers panel, tabs and canvas labels (visual order, joined Arabic); inline IME composition with the candidate window @@ -78,20 +80,24 @@ supported by both apps (CJK, Arabic and Devanagari shaping, IME); Figma has no v | Language | Code | UI strings translated | Dialogs / tooltips / help | Script support | Native review | Status | Hours to full | |---|---|---|---|---|---|---|---| -| English | en | 2,076 / 2,076 (100%, source) | yes | Latin | yes (source) | full | 0 | -| Simplified Chinese (Mandarin) | zh-Hans | 2,076 / 2,076 (100%, draft) | yes | CJK text and IME in documents; UI text in an installed Chinese face, ahead of Japanese ones (web: the `FIGCRAFT_EMBED_CJK` build); no Traditional Chinese catalog (zh-TW, zh-HK read English) | no | draft | 1–2 (after native review) | -| Spanish | es, es-419 | 2,076 / 2,076 (100%, draft); es-419 overlays 98 Latin American wordings (draft) | yes | Latin | no | draft | 0–1 (after native review) | +| English | en | 2,165 / 2,165 (100%, source) | yes | Latin | yes (source) | full | 0 | +| Simplified Chinese (Mandarin) | zh-Hans | 2,077 / 2,165 (95%, draft) | yes | CJK text and IME in documents; UI text in an installed Chinese face, ahead of Japanese ones (web: the `FIGCRAFT_EMBED_CJK` build); no Traditional Chinese catalog (zh-TW, zh-HK read English) | no | draft | 1–2 (after native review) | +| Spanish | es, es-419 | 2,165 / 2,165 (100%, draft); es-419 overlays 98 Latin American wordings (draft) | yes | Latin | no | draft | 0–1 (after native review) | | Hindi | hi | 0 (0%) | no | Devanagari shaping works in documents; UI font fallback to check | no | none | 4–7 | | Arabic | ar | 0 (0%) | no | Bidi, shaping and RTL names work; the UI does not mirror | no | none | 9–15 | -| French | fr | 2,076 / 2,076 (100%, draft) | yes | Latin | no | draft | 1–2 (after native review) | -| Portuguese | pt-BR | 2,076 / 2,076 (100%, draft) | yes | Latin | no | draft | 1–2 (after native review) | +| French | fr | 2,077 / 2,165 (95%, draft) | yes | Latin | no | draft | 1–2 (after native review) | +| Portuguese | pt-BR | 2,077 / 2,165 (95%, draft) | yes | Latin | no | draft | 1–2 (after native review) | | Indonesian | id | 0 (0%) | no | Latin | no | none | 3–5 | -| Japanese | ja | 2,076 / 2,076 (100%, draft) | yes | CJK text and IME in documents; UI text in an installed Japanese face (web: the `FIGCRAFT_EMBED_CJK` build) | no | draft | 1–2 (after native review) | -| German | de | 2,076 / 2,076 (100%, draft) | yes | Latin; long words elide in narrow fields | no | draft | 1–2 (after native review) | -| Korean | ko | 2,076 / 2,076 (100%, draft) | yes | Hangul text and IME in documents; UI text in an installed Korean face (web: the `FIGCRAFT_EMBED_CJK` build) | no | draft | 1–2 (after native review) | +| Japanese | ja | 2,077 / 2,165 (95%, draft) | yes | CJK text and IME in documents; UI text in an installed Japanese face (web: the `FIGCRAFT_EMBED_CJK` build) | no | draft | 1–2 (after native review) | +| German | de | 2,077 / 2,165 (95%, draft) | yes | Latin; long words elide in narrow fields | no | draft | 1–2 (after native review) | +| Korean | ko | 2,077 / 2,165 (95%, draft) | yes | Hangul text and IME in documents; UI text in an installed Korean face (web: the `FIGCRAFT_EMBED_CJK` build) | no | draft | 1–2 (after native review) | | Vietnamese | vi | 0 (0%) | no | Latin with stacked diacritics | no | none | 3–5 | -Other languages: none shipped (Figma ships none beyond the eight above). +Other languages: + +| Language | Code | UI strings translated | Dialogs / tooltips / help | Script support | Native review | Status | Hours to full | +|---|---|---|---|---|---|---|---| +| Czech | cs | 2,165 / 2,165 (100%, draft) | yes | Latin; existing UI fonts | no | draft | native review and panel QA pending | The layer is done. Per-language hours above are agent hours for a catalog of ~1,800 entries (a machine draft, then a pass over the panels for overflow), plus each language's plural rule where @@ -99,14 +105,15 @@ it isn't one/other; every language also needs a native speaker's review (human). parity besides the languages: localizing engine messages and number formatting (4–6 h); right-to-left mirroring of the panels is in Arabic's hours. Total: **29–51 h**. -Priority: native reviews of the seven drafts and the es-419 overlay (every one of Figma's languages -and variants has one, plus Simplified Chinese, which Figma doesn't ship), then Hindi, Indonesian, +Priority: native reviews of the eight drafts and the es-419 overlay (every one of Figma's languages +and variants has one, plus Simplified Chinese and Czech, which Figma doesn't ship), then Hindi, Indonesian, Vietnamese and Arabic. Traditional Chinese is not planned (no catalog; its users see English). ## Revision history | Date | Change | Summary | |---|---|---| +| 2026-10-15 | minor | Czech draft catalog: 1,577 UI keys, 557 command labels and 31 menu wordings (2,165 entries), marked as awaiting native review and kept out of `COMPLETE`. The build discovers `cs.toml` automatically; System resolves cs and cs-CZ without font changes. Singular uses `n == 1`; count-neutral `other` forms cover 0, 2–4 and 5+. Localization grades and estimates unchanged. | | 2026-10-12 | minor | Drafts catch up again, and the counts with them: French, German, Brazilian Portuguese, Japanese, Korean and Simplified Chinese translate the 71 UI strings and 5 command labels they lacked since sharing with a join code and open hosting (the Share popover, join codes, owner tokens, reports, the .fig export notes), and with Spanish the 26 strings and 3 command labels of your online files (Home ▸ Online, its menu and dialogs, the marks on tabs); machine-drafted in each file's conventions, still drafts. The Latin American overlay adds computadora and agrega where the new Spanish says ordenador and añade (98 entries). 2,076 entries per catalog (1,503 UI strings, 544 command labels, 29 menu wordings) | | 2026-10-12 | minor | Draft catalogs catch up: French, German, Brazilian Portuguese, Japanese and Korean translate the 66 UI strings and 17 command labels added since they were drafted (cursor chat and spotlight, the plugin directory, Rename layers, presentation and snapping keys, list levels, the rotation origin, placing with Enter…), Simplified Chinese the 46 and 12 it lacked; machine-drafted from the English in each file's conventions, still drafts (not in `COMPLETE`). The Latin American overlay adds Control for a gamepad controller and presiona in the plugin directory hint (90 entries, with Enter for the keycap). String counts re-measured: 1,417 UI keys, 536 command labels and 29 menu wordings (1,982 entries), every draft at 100%. Localization grade unchanged | | 2026-10-12 | minor | Simplified Chinese draft catalog (gap 5): `zh-Hans.toml` translates every UI string (1,371 keys; plurals give only `other`, and `plural_one` never picks "one"), command label (524) and menu wording (29), machine-drafted in a concise UI style with full-width punctuation and marked as a draft awaiting native review; Preferences ▸ Language lists 简体中文, System maps zh, zh-CN, zh-SG and zh-Hans to it, and Traditional Chinese (zh-Hant, zh-TW, zh-HK, zh-MO) has no catalog and stays English (or the next OS language), never Simplified. A Chinese UI draws Han in a Chinese face first (Microsoft YaHei, PingFang SC, Noto Sans CJK SC), ahead of the craft-fonts build's Japanese BIZ UDPGothic, and changing the UI language lays the CJK faces out again (switching from Japanese to Chinese no longer keeps the Japanese face in front). String counts re-measured: 1,371 UI keys, 524 command labels and 29 menu wordings (1,924 entries); the French, German, Brazilian Portuguese, Japanese and Korean drafts have 1,899 of them (the 25 newer strings read English). Localization 36% → 39%, 31–54 h → 29–51 h | diff --git a/docs/mcp.md b/docs/mcp.md index 2b66657c..c9d102cb 100644 --- a/docs/mcp.md +++ b/docs/mcp.md @@ -349,7 +349,7 @@ on; `key` resolves keys the way the canvas does. Commands behind keys: nested layers), Escape or a click drops it. - `pref.reduceMotion {on?}`: reduced motion (the interface's own animations off; the system's accessibility setting turns it on too). Prototype transitions still play. -- `pref.language {language: system|en|es|es-419|fr|de|pt-BR|ja|ko|zh-Hans|…}`: the app's interface language, applied live ("system": +- `pref.language {language: system|en|cs|es|es-419|fr|de|pt-BR|ja|ko|zh-Hans|…}`: the app's interface language, applied live ("system": the OS or browser language; a language without a catalog shows English). Command ids, labels and every result stay English. diff --git a/docs/roadmap.md b/docs/roadmap.md index 8e2780d6..4b798b5a 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,6 +1,6 @@ # FigCraft roadmap: milestones and what's next -> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-14 · **Change:** minor (recent files as cards with thumbnails on the home screen; community fixes: lost images reported on loading, SVG import budgets, Leptos code, full screen, server snapshots, owner-only preferences, ruzstd 0.9.1, layer cycle repair, batch rollback, Direct3D 12 on Windows, plugin metering; vector edit mode regions: hover hatch, selection and drag; repeat command recursion fix; the Layout panel's constrain-proportions link scales the other side, #220; Simplified Chinese draft catalog; Latin American Spanish overlay; prototyping tail: gamepad triggers, widgets in prototypes, mode lookups; plugin directory on figcraft-server; Japanese and Korean draft catalogs and CJK UI fonts; plugin widgets and the plugin panel tail; French, German and Brazilian Portuguese draft catalogs; `.fig` import, best effort; Display P3: gamut warning and soft-proof (true P3 blocked upstream); several windows; localization layer with a draft Spanish catalog; hosting figcraft-server: wss in the desktop app, server releases, deployment guide; plugin panels and settings; canvas fixes: boolean hit testing on the result, group drags, frame outlines and slices; code connect; stretch and scatter brushes, pen pressure; text on a path and pattern fills; team libraries on the server and swap library; branches: create, update from main, review and merge; animated GIF fills and TIFF images; Open recent, outlines for the selection and mask outlines: menu breadth 100%; extended collections, variables import/export, gradient stop and variant bindings; feature breadth ~79%) · **Target:** Figma Design (desktop app 126.10.7) +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-15 · **Change:** minor (Czech draft catalog; recent files as cards with thumbnails on the home screen; community fixes: lost images reported on loading, SVG import budgets, Leptos code, full screen, server snapshots, owner-only preferences, ruzstd 0.9.1, layer cycle repair, batch rollback, Direct3D 12 on Windows, plugin metering; vector edit mode regions: hover hatch, selection and drag; repeat command recursion fix; the Layout panel's constrain-proportions link scales the other side, #220; Simplified Chinese draft catalog; Latin American Spanish overlay; prototyping tail: gamepad triggers, widgets in prototypes, mode lookups; plugin directory on figcraft-server; Japanese and Korean draft catalogs and CJK UI fonts; plugin widgets and the plugin panel tail; French, German and Brazilian Portuguese draft catalogs; `.fig` import, best effort; Display P3: gamut warning and soft-proof (true P3 blocked upstream); several windows; localization layer with a draft Spanish catalog; hosting figcraft-server: wss in the desktop app, server releases, deployment guide; plugin panels and settings; canvas fixes: boolean hit testing on the result, group drags, frame outlines and slices; code connect; stretch and scatter brushes, pen pressure; text on a path and pattern fills; team libraries on the server and swap library; branches: create, update from main, review and merge; animated GIF fills and TIFF images; Open recent, outlines for the selection and mask outlines: menu breadth 100%; extended collections, variables import/export, gradient stop and variant bindings; feature breadth ~79%) · **Target:** Figma Design (desktop app 126.10.7) Forward-looking plan. Where FigCraft stands today: [`ROADMAP.md`](../ROADMAP.md) and [`target-app-parity.md`](target-app-parity.md); the full ranked list: [`gaps.md`](gaps.md). Hours @@ -16,7 +16,7 @@ are one Opus 5.5 agent; most milestones split across 4–6 agents on disjoint cr 3. **Tool-by-tool interaction pass** against the running Figma ([`ui-parity.md`](ui-parity.md)): 40–60 h, parallel by tool. 4. **Languages** on the landed localization layer: native reviews of the es, fr, de, pt-BR, ja, - ko and zh-Hans drafts and the es-419 overlay (people), then the other key languages: 3–7 h per language + ko, zh-Hans and cs drafts and the es-419 overlay (people), then the other key languages: 3–7 h per language plus native review. 5. **Multiplayer M9**: accounts and teams on top of the live sessions and the standalone server (the WebSocket transport, hosting from the app, invite links that open the app, document sync, live cursors, selections, text carets, avatars and follow, per-user undo, reconnect with offline edits, collision-free ids for styles, variables, collections and comments, joining from the browser, and `figcraft-server` with persistence, publishing from the app and share links to edit or view landed), per [`collab-protocol.md`](collab-protocol.md) and [`server.md`](server.md): 45–90 h. @@ -73,6 +73,7 @@ blockers. | Date | Change | Summary | |---|---|---| +| 2026-10-15 | minor | Czech draft catalog: 1,577 UI keys, 557 command labels and 31 menu wordings (2,165 entries), marked as awaiting native review and kept out of `COMPLETE`. The build discovers `cs.toml` automatically; System resolves cs and cs-CZ without font changes. Singular uses `n == 1`; count-neutral `other` forms cover 0, 2–4 and 5+. Localization grades and estimates unchanged. | | 2026-10-14 | minor | M7: Home screen recent files as cards: each card shows the picture its file carries on its first page's colour, the file's icon, name and "Edited ... ago"; sort by name, creation or last change either way; a table view; a click selects, a double-click or Enter opens, arrow keys move; Open, Show in folder and Remove from recents on right-click. Numbers unchanged. | | 2026-10-14 | minor | Lost images reported on loading (#207): a `.figcraft` file whose image member is damaged, too large or missing no longer loads in silence; each lost image (up to 20, then a count) is listed in `repairs` on `file.open` with its hash and the reason, and the app shows it as a toast. Saving still writes the file without the lost images. Numbers unchanged | | 2026-10-14 | minor | SVG import budgets (#190): gzipped SVG is unpacked by FigCraft within 64 MiB before parsing (it was unpacked without a limit), so the nesting check sees the real document; SVG documents embedded in `` data URIs share one 32 MiB budget and at most 4 levels, and one past a budget is left out. Linked files stay unread. Numbers unchanged | diff --git a/docs/target-app-parity.md b/docs/target-app-parity.md index c34d5916..5873df48 100644 --- a/docs/target-app-parity.md +++ b/docs/target-app-parity.md @@ -1,6 +1,6 @@ # FigCraft parity with Figma -> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-13 · **Change:** minor (vector edit mode regions: hover hatch, selection and drag; plugin log byte/count limits (#191); core editor leftovers: component playground, auto gap handles, variables inside styles, inner shadows and background blur on groups, command-made text readable on dark pages, a one-step frame/group convert, delays on mouse triggers and manual overlay offsets, wrapped-line alignment; starter templates, a Templates tab and Getting started tips on the home screen: essentials ~57% → ~59%; everyday editing partials: number fields, outline options, Hide when publishing, cursors, panel widths, dark pages, numbers unchanged but menu breadth 211/211; text box sizes measured against documents re-saved by other software: whole-pixel line heights, advances on a 1024-per-em grid, letter spacing between glyphs only, numbers unchanged; .fig export checked by opening written files in other software, numbers unchanged; a public figcraft-server: open hosting, owner tokens, per-address limits, idle expiry, moderation, install.sh; experimental .fig export; keyboard shortcut parity suite and bindings; Simplified Chinese draft catalog; Latin American Spanish overlay; prototyping tail: gamepad triggers, widgets in prototypes, mode lookups; plugin directory on figcraft-server; Japanese and Korean draft catalogs and CJK UI fonts; plugin widgets and the plugin panel tail; French, German and Brazilian Portuguese draft catalogs; cursor chat and spotlight in live sessions; layers and assets panels behaviour suite and fixes; vector multi-edit and edit tail; dev resources links; extended collections tail; branch version history and finer list merges; headline percentages recomputed from the area table: feature breadth ~84%, core ~94%, mainstream ~50%; text lists, hanging punctuation and decoration styles; comments and version history behaviour suite and fixes; canvas navigation, guides and grids behaviour suite and fixes; export and inspect behaviour suite and fixes; .fig import: editable vector networks and more layer kinds; shapes and vector behaviour suite and fixes; paint and effects behaviour suite and fixes; frames, groups, sections and masks behaviour suite and fixes; styles and variables behaviour suite and fixes; prototyping behaviour suite and fixes; components behaviour suite and fixes; embedded image colour profiles; layers panel keyboard: F2 rename, Shift+F10 context menu, keyboard box selection, 10k-layer QA; per-side stroke weight variables; text behaviour suite: CJK line breaking, metrics, vertical trim; selection and transform behaviour suite and fixes; `.fig` import, best effort; auto layout behaviour suite and fixes; Display P3: gamut warning and soft-proof (true P3 blocked upstream); several windows; localization layer with a draft Spanish catalog; hosting figcraft-server: wss in the desktop app, server releases, deployment guide; plugin panels and settings; canvas fixes: boolean hit testing on the result, group drags, frame outlines and slices; code connect; stretch and scatter brushes, pen pressure; text on a path and pattern fills; team libraries on the server and swap library; branches: create, update from main, review and merge; animated GIF fills and TIFF images; Open recent, outlines for the selection and mask outlines: menu breadth 100%; extended collections, variables import/export, gradient stop and variant bindings; feature breadth ~80%; ready ~49%; last major: full re-measure against Figma desktop 126.10.7) · **Target:** Figma Design (desktop app 126.10.7, macOS) +> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-10-15 · **Change:** minor (Czech draft catalog; vector edit mode regions: hover hatch, selection and drag; plugin log byte/count limits (#191); core editor leftovers: component playground, auto gap handles, variables inside styles, inner shadows and background blur on groups, command-made text readable on dark pages, a one-step frame/group convert, delays on mouse triggers and manual overlay offsets, wrapped-line alignment; starter templates, a Templates tab and Getting started tips on the home screen: essentials ~57% → ~59%; everyday editing partials: number fields, outline options, Hide when publishing, cursors, panel widths, dark pages, numbers unchanged but menu breadth 211/211; text box sizes measured against documents re-saved by other software: whole-pixel line heights, advances on a 1024-per-em grid, letter spacing between glyphs only, numbers unchanged; .fig export checked by opening written files in other software, numbers unchanged; a public figcraft-server: open hosting, owner tokens, per-address limits, idle expiry, moderation, install.sh; experimental .fig export; keyboard shortcut parity suite and bindings; Simplified Chinese draft catalog; Latin American Spanish overlay; prototyping tail: gamepad triggers, widgets in prototypes, mode lookups; plugin directory on figcraft-server; Japanese and Korean draft catalogs and CJK UI fonts; plugin widgets and the plugin panel tail; French, German and Brazilian Portuguese draft catalogs; cursor chat and spotlight in live sessions; layers and assets panels behaviour suite and fixes; vector multi-edit and edit tail; dev resources links; extended collections tail; branch version history and finer list merges; headline percentages recomputed from the area table: feature breadth ~84%, core ~94%, mainstream ~50%; text lists, hanging punctuation and decoration styles; comments and version history behaviour suite and fixes; canvas navigation, guides and grids behaviour suite and fixes; export and inspect behaviour suite and fixes; .fig import: editable vector networks and more layer kinds; shapes and vector behaviour suite and fixes; paint and effects behaviour suite and fixes; frames, groups, sections and masks behaviour suite and fixes; styles and variables behaviour suite and fixes; prototyping behaviour suite and fixes; components behaviour suite and fixes; embedded image colour profiles; layers panel keyboard: F2 rename, Shift+F10 context menu, keyboard box selection, 10k-layer QA; per-side stroke weight variables; text behaviour suite: CJK line breaking, metrics, vertical trim; selection and transform behaviour suite and fixes; `.fig` import, best effort; auto layout behaviour suite and fixes; Display P3: gamut warning and soft-proof (true P3 blocked upstream); several windows; localization layer with a draft Spanish catalog; hosting figcraft-server: wss in the desktop app, server releases, deployment guide; plugin panels and settings; canvas fixes: boolean hit testing on the result, group drags, frame outlines and slices; code connect; stretch and scatter brushes, pen pressure; text on a path and pattern fills; team libraries on the server and swap library; branches: create, update from main, review and merge; animated GIF fills and TIFF images; Open recent, outlines for the selection and mask outlines: menu breadth 100%; extended collections, variables import/export, gradient stop and variant bindings; feature breadth ~80%; ready ~49%; last major: full re-measure against Figma desktop 126.10.7) · **Target:** Figma Design (desktop app 126.10.7, macOS) The authoritative assessment of how close FigCraft is to Figma Design. [`ROADMAP.md`](../ROADMAP.md) summarizes it; [`gaps.md`](gaps.md) is the ranked work list; the measured menu checklist is @@ -129,7 +129,7 @@ Breadth: does it exist. Ready: depth, correctness and fidelity for real projects | Stability | 8 | 55% | 20–40 | Never-crash lints, command guard with rollback, recovery copies, 963 tests incl. junk-parameter sweeps and a seeded retained-render walk; but two days old, one release (v0.2.0), no field reports, QA mostly on macOS | [gaps](gaps.md) | | Performance | 6 | 60% | 30–60 | `cargo xtask bench`: 50k-layer page ~8 ms zoomed out, 10k-layer edits ~0.2 ms, 2,000-instance design system edits 4–64 ms; CPU (tiny-skia) canvas where Figma renders on the GPU; nothing timed against Figma on the same file | [hardware-parity](hardware-parity.md) | | Hardware | 3 | 60% | 10–21 | Trackpad pinch and HiDPI yes; pen pressure on Windows and from browser styluses (none from macOS/Linux tablets); several windows (screen-reader tree in the main one only); no GPU canvas, no P3 on screen | [hardware-parity](hardware-parity.md) | -| Localization | 3 | 39% | 29–51 | The layer, an English catalog and machine drafts of Spanish (with a Latin American overlay), French, German, Brazilian Portuguese, Japanese, Korean and Simplified Chinese (none reviewed by a native speaker; every draft covers all current strings), CJK UI text in installed faces loaded on demand (web: only the craft-fonts CJK build); engine messages stay English | [localization-parity](localization-parity.md) | +| Localization | 3 | 39% | 29–51 | The layer, an English catalog and machine drafts of Spanish (with a Latin American overlay), French, German, Brazilian Portuguese, Japanese, Korean, Simplified Chinese and Czech (none reviewed by a native speaker; Czech covers all 2,165 current entries, older drafts fall back to English for later additions), CJK UI text in installed faces loaded on demand (web: only the craft-fonts CJK build); engine messages stay English | [localization-parity](localization-parity.md) | | Platforms | 3 | 75% | 10–20 | macOS, Windows (x64/x86/arm64), Linux, FreeBSD, web all packaged (v0.2.0); Figma also has iOS/Android apps; non-macOS QA thin | [hardware-parity](hardware-parity.md) | | Ecosystem/plugins | 3 | 38% | 8–26 | Own WASM plugins with a Rust SDK and three examples (#101), plugin panels and settings (ABI v2), widgets that take clicks (API 3), a self-hosted plugin directory on `figcraft-server`; no Figma plugin compatibility, no public catalogue or community files; the CLI, control channel and MCP server are ahead of Figma for agents | [gaps](gaps.md) | | AI features | 2 | 0% | 30–60 | None | [gaps](gaps.md) | @@ -628,6 +628,7 @@ Carried over from the ROADMAP's "Shipped so far" (2026-10-10). The test count th | Date | Change | Summary | |---|---|---| +| 2026-10-15 | minor | Czech draft catalog: 1,577 UI keys, 557 command labels and 31 menu wordings (2,165 entries), marked as awaiting native review and kept out of `COMPLETE`. The build discovers `cs.toml` automatically; System resolves cs and cs-CZ without font changes. Singular uses `n == 1`; count-neutral `other` forms cover 0, 2–4 and 5+. Localization grades and estimates unchanged. | | 2026-10-13 | minor | Vector edit mode regions: the filled area under the pointer is hatched (clear of points and segments, holes left out, spacing by octave folding fitted to measurements at several zoom levels, fixed to the shape); click, Shift-click and drag select and move areas with their points (drawn unselected); a click on an empty spot clears them and stays in edit mode (see [ui-parity](ui-parity.md)) | | 2026-10-13 | minor | Plugin log limits (#191): cap each UTF-8 line at 8 KiB, total log bytes at 1 MiB and lines at 1,000 per run/callback before copying guest memory or forwarding to the host. Over-budget runs fail and roll back document edits; callbacks get fresh budgets. Added sandbox boundary/forwarding tests and an engine rollback regression. Percentages and hours unchanged. | | 2026-10-13 | minor | Component playground (M3): with an instance, a component or a component set selected, the Inspect tab shows a Playground: a preview of the component and a control for each variant, boolean and text property. What is tried there changes the preview and the code in the Code section, never the file (no undo step, the canvas instance stays as it is); Reset goes back to the component's or the instance's own values. `component.playground {id?, properties?, language?, path?}` gives the same to scripts: the properties with their values, the code, and a PNG on request (`playground_tests`). Left: instance-swap and slot properties in the playground (the command takes an instance swap; the panel has no control for it), a code connect template's snippet with the tried values. Numbers unchanged. | diff --git a/docs/translating.md b/docs/translating.md index b7c26a40..c56c3b27 100644 --- a/docs/translating.md +++ b/docs/translating.md @@ -13,8 +13,8 @@ Simplified. `pref.language {language}` does the same from the CLI, MCP and the control channel. The catalogs: English (`en`, the source), and Spanish (`es`, with the Latin American overlay -`es-419`), French (`fr`), German (`de`), Brazilian Portuguese (`pt-BR`), Japanese (`ja`), Korean (`ko`) -and Simplified Chinese (`zh-Hans`), machine-drafted and waiting for native speakers' review. +`es-419`), French (`fr`), German (`de`), Brazilian Portuguese (`pt-BR`), Japanese (`ja`), Korean (`ko`), +Simplified Chinese (`zh-Hans`) and Czech (`cs`), machine-drafted and waiting for native speakers' review. ## The catalogs @@ -43,7 +43,9 @@ Enter for the key, control for a gamepad, resorte) and keeps Spanish's tú. Japa concise, without です/ます endings, with full-width ()「」:、。 where Japanese UI text has them; Korean labels end without 합니다 (instructions in -세요). Simplified Chinese is concise, with full-width ():,、。“” in Chinese text and a space between Chinese and Latin words or numbers. -None of the three has plural forms. +None of the three has plural forms. Czech uses formal address, „ “ quotes and no space before +`:`. Use consistent design terms (rámec, komponenta, instance, varianta, automatické rozvržení, +omezení, výplň, tah, efekt, prototyp, proměnná, styl). CJK text needs a CJK font, which egui and Inter lack: the desktop app adds an installed one when something on screen needs it (see `crates/ui-egui/src/cjk.rs`). The web build has no system fonts, @@ -61,11 +63,13 @@ language also needs its script in `cjk::language`. 3. Plurals: give `one` only if the language has a singular form (Japanese, Korean and Chinese give only `other`, and `plural_one` returns false for them). `trn` picks `one` for a count of 1, and also for 0 in French and Brazilian Portuguese (keep `{n}` in their `one` forms); a language with other rules needs its rule in - `plural_one` in [`crates/ui-egui/src/i18n.rs`](../crates/ui-egui/src/i18n.rs). + `plural_one` in [`crates/ui-egui/src/i18n.rs`](../crates/ui-egui/src/i18n.rs). Czech keeps the + default `n == 1`: because only `one`/`other` are supported, its `other` must be count-neutral + for 0, 2–4 and 5+ (e.g. `Vrstvy: {n}`), rather than using a form valid only for 5+. 4. To require full coverage, add the code to `COMPLETE` in [`crates/ui-egui/src/i18n_tests.rs`](../crates/ui-egui/src/i18n_tests.rs). Every later PR that adds a string then has to translate it into each complete language, so only Spanish is there: - French, German, Brazilian Portuguese, Japanese, Korean and Simplified Chinese are registered as + French, German, Brazilian Portuguese, Japanese, Korean, Simplified Chinese and Czech are registered as drafts, and a string added later shows English in them until it is translated. To list what a draft lacks, add its code to `COMPLETE` locally and run the check. 5. Run the check and look at the panels in the app (longer words must fit the right panel):