Compare commits

..
14 Commits
Author SHA1 Message Date
Brandon ThomasandClaude Opus 5.5 594dc8c6cf Release 0.8.0
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 22:20:57 -04:00
BFlat dd6bd3fe1c Merge pull request #901 from pechnikov2026-star/community/russian-catch-up
M9: Russian catalog catch-up: the 56 strings added since the review (machine-drafted)
2026-10-20 06:32:45 +07:00
bflatastic 9b711e212b Merge main into #901 2026-10-20 06:20:04 +07:00
BFlat b5038726c4 Merge pull request #902 from storytold/fix/issue-892
M3: duplicating a main component makes an instance (#892)
2026-10-20 06:19:17 +07:00
BFlat 9c6920cf7d Merge pull request #896 from johnpetersa19/main
Add missing Brazilian Portuguese UI translations
2026-10-20 06:12:04 +07:00
BFlat 2bcd004071 Merge pull request #897 from devius/ka-header
i18n(ka): say how the Georgian catalog was made (AI-assisted, native-reviewed); still a draft
2026-10-20 06:11:27 +07:00
sanches eb7ead9455 M9: Russian catalog catch-up: the 56 strings added since the review (machine-drafted) 2026-10-20 01:59:51 +03:00
bflatastic ab59877559 Merge main into #897 2026-10-20 05:47:17 +07:00
bflatastic 77ffc57432 #896: "Individual padding" uses the catalog's word for padding (Preenchimento is Fill) 2026-10-20 05:47:15 +07:00
bflatastic 4e7256bf6a Merge main into #896 2026-10-20 05:47:14 +07:00
Davit MatchakhelidzeandClaude Opus 5.5 e123a2efe7 i18n(ka): the draft status says the review is done and approval pending; the guide and the field doc say both kinds of draft
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YMTAbGNRxnMEzRvYnQGphF
2026-10-20 02:33:25 +04:00
Davit MatchakhelidzeandClaude Opus 5.5 bae2f057a1 i18n(ka): the catalog header and docs say how Georgian was made (AI-assisted, native-reviewed); still a draft
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YMTAbGNRxnMEzRvYnQGphF
2026-10-20 02:11:55 +04:00
John Peter Sa c3fe69c629 Merge branch 'storytold:main' into main 2026-10-19 18:58:22 -03:00
johnpetersa19andCopilot App 629c297de9 M2.1: add missing Brazilian Portuguese translations
Co-authored-by: Copilot App <[email protected]>
2026-10-19 18:49:06 -03:00
7 changed files with 205 additions and 29 deletions

No files matched your search

Generated
+21 -21
View File
@@ -1413,7 +1413,7 @@ checksum = "b97b65636e5b9ef369943878ac74335ba1c55c1cb6adbf1e2c293c624248d693"
[[package]]
name = "figcraft"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"arboard",
"eframe",
@@ -1440,7 +1440,7 @@ dependencies = [
[[package]]
name = "figcraft-cli"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-doc",
"figcraft-engine",
@@ -1454,7 +1454,7 @@ dependencies = [
[[package]]
name = "figcraft-collab"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"base64 0.22.1",
"figcraft-color",
@@ -1469,7 +1469,7 @@ dependencies = [
[[package]]
name = "figcraft-collab-net"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"base64 0.22.1",
"figcraft-collab",
@@ -1492,7 +1492,7 @@ dependencies = [
[[package]]
name = "figcraft-color"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"kurbo",
"serde",
@@ -1501,7 +1501,7 @@ dependencies = [
[[package]]
name = "figcraft-doc"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-color",
"figcraft-geom",
@@ -1513,7 +1513,7 @@ dependencies = [
[[package]]
name = "figcraft-engine"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"base64 0.22.1",
"craft-docpath",
@@ -1541,7 +1541,7 @@ dependencies = [
[[package]]
name = "figcraft-format"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-doc",
"figcraft-pathops",
@@ -1556,7 +1556,7 @@ dependencies = [
[[package]]
name = "figcraft-geom"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"kurbo",
"serde",
@@ -1564,7 +1564,7 @@ dependencies = [
[[package]]
name = "figcraft-layout"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-doc",
"figcraft-geom",
@@ -1572,7 +1572,7 @@ dependencies = [
[[package]]
name = "figcraft-mcp"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"base64 0.22.1",
"figcraft-collab-net",
@@ -1588,7 +1588,7 @@ dependencies = [
[[package]]
name = "figcraft-pathops"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-doc",
"figcraft-geom",
@@ -1597,7 +1597,7 @@ dependencies = [
[[package]]
name = "figcraft-pdf"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-color",
"figcraft-doc",
@@ -1614,7 +1614,7 @@ dependencies = [
[[package]]
name = "figcraft-plugin"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-color",
"serde",
@@ -1627,7 +1627,7 @@ dependencies = [
[[package]]
name = "figcraft-render"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"crc32fast",
"figcraft-color",
@@ -1645,7 +1645,7 @@ dependencies = [
[[package]]
name = "figcraft-server"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"crc32fast",
"ctrlc",
@@ -1669,7 +1669,7 @@ dependencies = [
[[package]]
name = "figcraft-svg"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"base64 0.22.1",
"figcraft-color",
@@ -1685,7 +1685,7 @@ dependencies = [
[[package]]
name = "figcraft-text"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-doc",
"figcraft-geom",
@@ -1699,7 +1699,7 @@ dependencies = [
[[package]]
name = "figcraft-ui-egui"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"base64 0.22.1",
"egui",
@@ -1724,7 +1724,7 @@ dependencies = [
[[package]]
name = "figcraft-web"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"eframe",
"egui",
@@ -5934,7 +5934,7 @@ checksum = "9440ea3e5aeabb0ac63af70daf835274065238cdd0cec83418f417eae38bacee"
[[package]]
name = "xtask"
version = "0.7.0"
version = "0.8.0"
dependencies = [
"figcraft-engine",
"serde_json",
+1 -1
View File
@@ -6,7 +6,7 @@ exclude = ["plugins"]
# default-members = ["crates/*", "apps/figcraft", "apps/figcraft-cli", "xtask"]
[workspace.package]
version = "0.7.0"
version = "0.8.0"
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.95"
+6 -4
View File
@@ -1,12 +1,14 @@
# FigCraft interface strings: Georgian.
#
# Draft — needs native review: machine-drafted from the English catalog. Brand names and keyboard
# glyphs stay as they are. Georgian has no letter case, and a noun after a numeral stays singular, so
# counts read "შრე: {n}" and plural entries give the same text for one and other. See docs/translating.md.
# Written with AI assistance (Claude) from the meaning of each English string, following the glossary
# the Craft apps share, and reviewed by a native Georgian speaker; kept as a draft until a maintainer
# changes its status. Brand names and keyboard glyphs stay as they are. Georgian has no letter case,
# and a noun after a numeral stays singular, so counts read "შრე: {n}" and plural entries give the
# same text for one and other. See docs/translating.md.
[meta]
name = "ქართული"
status = "draft — needs native review"
status = "draft — reviewed by a native speaker, awaiting a maintainer's approval"
[ui]
"% of all commits" = "ყველა კომიტის %"
+114
View File
@@ -1640,6 +1640,120 @@ status = "draft — needs native review"
"⌘ click" = "⌘ clique"
"⌘ scroll" = "⌘ rolar"
"⌥ drag" = "⌥ arrastar"
"A responsive product page: hero, features, figures, a quote and a footer" = "Uma página de produto responsiva: destaque, recursos, dados, depoimento e rodapé"
"A title, an agenda, a big figure, a chart and a closing slide" = "Um título, uma pauta, um número em destaque, um gráfico e um slide de encerramento"
"A to Z" = "De A a Z"
"Adding to {name}" = "Adicionando a {name}"
"All the fonts this file uses are installed" = "Todas as fontes usadas neste arquivo estão instaladas"
"Alphabetical" = "Alfabética"
"An analytics screen on a grid: figures, charts drawn from vectors and a table" = "Uma tela de análise em grade: dados, gráficos vetoriais e uma tabela"
"Apps" = "Aplicativos"
"Apr" = "abr."
"Aug" = "ago."
"Bottom padding" = "Espaçamento interno inferior"
"Bound to {name}. Click to detach the variable." = "Vinculada a {name}. Clique para desvincular a variável."
"Checking the fonts installed on this computer…" = "Verificando as fontes instaladas neste computador…"
"Colour and text styles, Light and Dark variables, buttons, inputs and cards" = "Estilos de cor e texto, variáveis Claro e Escuro, botões, campos e cartões"
"Convert to frame" = "Converter em quadro"
"Convert to section" = "Converter em seção"
"Created" = "Criado"
"Dashboard" = "Painel"
"Date created" = "Data de criação"
"Dec" = "dez."
"Design system starter" = "Ponto de partida para sistema de design"
"Draw a frame" = "Desenhe um quadro"
"Drop a .figcraft, .fig, .json, .svg or image file." = "Solte um arquivo .figcraft, .fig, .json, .svg ou uma imagem."
"Drop to import" = "Solte para importar"
"Drop to open" = "Solte para abrir"
"Edited {when}" = "Editado {when}"
"Export frames and layers as PNG, JPG, SVG or PDF" = "Exporte quadros e camadas como PNG, JPG, SVG ou PDF"
"Feb" = "fev."
"File not found" = "Arquivo não encontrado"
"Four screens of a trail app with components and a prototype flow" = "Quatro telas de um aplicativo de trilhas com componentes e um fluxo de protótipo"
"Getting started" = "Primeiros passos"
"Greyscale components and two example screens to sketch a flow with" = "Componentes em escala de cinza e duas telas de exemplo para esboçar um fluxo"
"Hide these tips (Getting started in the Help menu shows them again)" = "Ocultar estas dicas (Primeiros passos no menu Ajuda as exibe novamente)"
"Hide when publishing" = "Ocultar ao publicar"
"Icon components on a 24 px grid with keylines and a size preview" = "Componentes de ícone em uma grade de 24 px, com linhas-guia e prévia de tamanho"
"Icon set starter" = "Ponto de partida para conjunto de ícones"
"Individual padding" = "Espaçamento interno individual"
"Interface size" = "Tamanho da interface"
"Jan" = "jan."
"Jul" = "jul."
"Jun" = "jun."
"Kits" = "Kits"
"Landing page" = "Página de apresentação"
"Last modified" = "Modificado por último"
"Left padding" = "Espaçamento interno à esquerda"
"Link frames on the Prototype tab, then present the flow" = "Vincule os quadros na aba Protótipo e apresente o fluxo"
"Make a component" = "Criar um componente"
"Mar" = "mar."
"May" = "mai."
"Missing fonts" = "Fontes ausentes"
"Mobile app" = "Aplicativo para celular"
"Newest first" = "Mais recentes primeiro"
"No files or templates match your search" = "Nenhum arquivo ou modelo corresponde à sua busca"
"No other pages" = "Não há outras páginas"
"No templates match your search" = "Nenhum modelo corresponde à sua busca"
"Nov" = "nov."
"Oct" = "out."
"Oldest first" = "Mais antigos primeiro"
"One announcement in five common sizes: square, portrait, story, link and banner" = "Um anúncio em cinco tamanhos comuns: quadrado, retrato, story, link e banner"
"Opening the file…" = "Abrindo o arquivo…"
"Opening {n} files as new files" = { one = "Abrindo como um novo arquivo", other = "Abrindo {n} arquivos como novos arquivos" }
"Order" = "Ordem"
"Other" = "Outro"
"Pick the Frame tool, then drag on the canvas or choose a device size" = "Selecione a ferramenta Quadro e arraste na tela ou escolha o tamanho de um dispositivo"
"Plugin" = "Plugin"
"Plugins & widgets" = "Plugins e widgets"
"Presentation slides" = "Slides de apresentação"
"Playground" = "Área de testes"
"Relative to your system's display scaling (100% is the system's own size). Document zoom is separate." = "Em relação à escala de exibição do sistema (100% corresponde ao tamanho definido pelo sistema). O zoom do documento é independente."
"Remove from recents" = "Remover dos recentes"
"Reorder selection" = "Reordenar seleção"
"Right padding" = "Espaçamento interno à direita"
"Search templates" = "Buscar modelos"
"See all templates" = "Ver todos os modelos"
"Select layers and they space themselves as their content changes" = "Selecione camadas e elas ajustarão o espaçamento conforme o conteúdo mudar"
"Search files and templates" = "Buscar arquivos e modelos"
"Search results" = "Resultados da busca"
"Search pages" = "Buscar páginas"
"Sep" = "set."
"Share with a code" = "Compartilhar com um código"
"Show all templates" = "Mostrar todos os modelos"
"Show in Explorer" = "Mostrar no Explorador de Arquivos"
"Show in Finder" = "Mostrar no Finder"
"Show in folder" = "Mostrar na pasta"
"Social and slides" = "Redes sociais e slides"
"Social post sizes" = "Tamanhos de publicação para redes sociais"
"Sort by" = "Ordenar por"
"Sort by {column}" = "Ordenar por {column}"
"Start from a template" = "Começar com um modelo"
"Start sharing with the Share button, then pass on the code it gives" = "Comece a compartilhar pelo botão Compartilhar e envie o código gerado"
"Templates" = "Modelos"
"The destination document is unavailable. Nothing was imported." = "O documento de destino está indisponível. Nada foi importado."
"The destination document was closed. Nothing was imported." = "O documento de destino foi fechado. Nada foi importado."
"The destination page was removed. Nothing was imported." = "A página de destino foi removida. Nada foi importado."
"The window is too small for {size}%, so the interface is drawn at {drawn}%. Make the window larger to use {size}%." = "A janela é pequena demais para {size}%, então a interface é exibida em {drawn}%. Aumente a janela para usar {size}%."
"This file uses fonts that aren't installed on this computer. Their text is drawn in a fallback font until you install them." = "Este arquivo usa fontes que não estão instaladas neste computador. O texto será exibido com uma fonte substituta até que você as instale."
"Top padding" = "Espaçamento interno superior"
"Try another search, or browse templates." = "Tente outra busca ou explore os modelos."
"Try another word, or look at every kind." = "Tente outra palavra ou veja todos os tipos."
"Turn a layer into a component, reuse it, and change every copy at once" = "Transforme uma camada em componente, reutilize-a e altere todas as cópias de uma só vez"
"Use your browser's zoom to change the interface size." = "Use o zoom do navegador para alterar o tamanho da interface."
"Uses variables: each layer shows them in its own mode" = "Usa variáveis: cada camada as exibe em seu próprio modo"
"Websites" = "Sites"
"What you try here changes this preview and the code below, not the file" = "O que você experimentar aqui altera esta prévia e o código abaixo, não o arquivo"
"Widget" = "Widget"
"Wireframe kit" = "Kit de wireframe"
"Z to A" = "De Z a A"
"just now" = "agora mesmo"
"only in a text style or variable" = "somente em um estilo de texto ou variável"
"slot layers without a matching slot property were imported as frames" = "camadas de slot sem uma propriedade de slot correspondente foram importadas como quadros"
"yesterday" = "ontem"
"{month} {day}, {year}" = "{day} de {month} de {year}"
"{n} text layers" = { one = "{n} camada de texto", other = "{n} camadas de texto" }
"{percent}%" = "{percent}%"
[commands]
"align.bottom" = "Alinhar embaixo"
+57
View File
@@ -1,5 +1,6 @@
# FigCraft interface strings: Russian.
# Wording reviewed and approved by VanTan.
# Strings added since that review (2026-10-20) are a machine draft awaiting review.
# Keep Frame, Dev Mode and Smart animate as familiar tool names.
# See docs/translating.md; plural forms follow Russian integer rules.
@@ -16,6 +17,7 @@ name = "Русский"
"@{login}: {prs} PRs, {commits} commits, +{added} / −{deleted} lines (Δ {delta}), +{bin_added} / −{bin_deleted} binary assets, {first} – {last}" = "@{login}: PR: {prs}, коммитов: {commits}, +{added} / −{deleted} строк (Δ {delta}), +{bin_added} / −{bin_deleted} бинарных ресурсов, {first} – {last}"
"A collection of this file with these modes and variables: override their values per mode and add variables of its own" = "Коллекция этого файла с этими режимами и переменными: переопределяйте значения для каждого режима и добавляйте собственные переменные"
"A .figcraft file with this name already exists. Choose its full name to confirm replacement." = "Файл .figcraft с таким именем уже существует. Чтобы подтвердить замену, выберите его полное имя."
"A layer on its own aligns to its frame: select more layers, or one in a frame" = "Отдельный слой выравнивается по своему фрейму: выделите больше слоёв или слой внутри фрейма."
"A responsive product page: hero, features, figures, a quote and a footer" = "Адаптивная страница продукта: главный блок, возможности, показатели, цитата и подвал"
"A spring plays until it settles: its mass, stiffness and damping set how long" = "Пружинная анимация длится до затухания: её время задают масса, жёсткость и демпфирование"
"A title, an agenda, a big figure, a chart and a closing slide" = "Заголовок, повестка, крупный показатель, диаграмма и заключительный слайд"
@@ -65,6 +67,7 @@ name = "Русский"
"Add variant with a new value" = "Добавить вариант с новым значением"
"Added" = "Добавлено"
"Added the library \"{name}\"" = "Добавлена библиотека «{name}»"
"Adding to {name}" = "Добавление в {name}"
"Adjust" = "Коррекция"
"Adjustment presets" = "Пресеты коррекции"
"Advanced" = "Дополнительно"
@@ -88,6 +91,7 @@ name = "Русский"
"All components" = "Все компоненты"
"All fonts" = "Все шрифты"
"All supported properties" = "Все поддерживаемые свойства"
"All the fonts this file uses are installed" = "Все шрифты, которые использует этот файл, установлены"
"All variables" = "Все переменные"
"Alpha" = "Альфа"
"Alphabetical" = "По алфавиту"
@@ -168,6 +172,7 @@ name = "Русский"
"Both directions" = "Оба направления"
"Bottom" = "Снизу"
"Bottom left radius" = "Радиус нижнего левого угла"
"Bottom padding" = "Нижний внутренний отступ"
"Bottom right radius" = "Радиус нижнего правого угла"
"Branch" = "Ветка"
"Branch archived" = "Ветка архивирована"
@@ -194,6 +199,7 @@ name = "Русский"
"C or ⇧C" = "C или ⇧C"
"CMYK colour" = "Цвет CMYK"
"Can view" = "Может просматривать"
"Checking the fonts installed on this computer…" = "Проверка шрифтов, установленных на этом компьютере…"
"Checking the server…" = "Проверка сервера…"
"Clear from this list" = "Убрать из этого списка"
"Code or invite link" = "Код или ссылка приглашения"
@@ -293,6 +299,8 @@ name = "Русский"
"Contributors" = "Участники"
"Contributors: {people} · Commits: {commits}" = "Участники: {people} · Коммиты: {commits}"
"Controller" = "Контроллер"
"Convert to frame" = "Преобразовать во Frame"
"Convert to section" = "Преобразовать в секцию"
"Cool" = "Холодный"
"Copied as CSS" = "Скопировано как CSS"
"Copied as PNG" = "Скопировано как PNG"
@@ -310,8 +318,10 @@ name = "Русский"
"Copy {value}" = "Копировать {value}"
"Corner radius" = "Радиус углов"
"Corner smoothing" = "Сглаживание углов"
"Couldn't download the variables" = "Не удалось загрузить переменные"
"Couldn't reach {server}: showing what this computer remembers." = "Не удалось связаться с {server}: показаны данные, сохранённые на этом компьютере."
"Couldn't read {name}." = "Не удалось прочитать {name}."
"Couldn't save automatically: {error}" = "Не удалось сохранить автоматически: {error}"
"Count" = "Количество"
"Create" = "Создать"
"Create a variable collection first" = "Сначала создайте коллекцию переменных"
@@ -407,7 +417,10 @@ name = "Русский"
"Draw" = "Рисование"
"Draw a frame" = "Нарисовать Frame"
"Drawing tools" = "Инструменты рисования"
"Drop a .figcraft, .fig, .json, .svg or image file." = "Перетащите файл .figcraft, .fig, .json, .svg или изображение."
"Drop shadow" = "Внешняя тень"
"Drop to import" = "Отпустите, чтобы импортировать"
"Drop to open" = "Отпустите, чтобы открыть"
"Dual-licensed MIT OR Apache-2.0. Made by the ArtCraft team and community." = "Двойная лицензия MIT OR Apache-2.0. Создано командой и сообществом ArtCraft."
"Duo" = "Дуо"
"Duplicate" = "Дублировать"
@@ -477,6 +490,7 @@ name = "Русский"
"False" = "Ложь"
"Feb" = "февр."
"Fetching from the server…" = "Загрузка с сервера…"
"FigCraft couldn't open its window: {error}" = "FigCraft не смог открыть своё окно: {error}"
"FigCraft doesn't support every feature of these files yet. The notes list what was left out or changed in the imported copy; the original file is unchanged." = "FigCraft пока поддерживает не все возможности этих файлов. В замечаниях перечислено, что было пропущено или изменено в импортированной копии; исходный файл не меняется."
"File" = "Файл"
"File name" = "Имя файла"
@@ -598,6 +612,7 @@ name = "Русский"
"Icon components on a 24 px grid with keylines and a size preview" = "Компоненты иконок на сетке 24 px с направляющими и предпросмотром размеров"
"Icon set starter" = "Основа набора иконок"
"If" = "Если"
"If it keeps happening, please report it at {link} with this message." = "Если это повторяется, сообщите об этом по адресу {link}, приложив это сообщение."
"If {condition}" = "Если {condition}"
"Ignore auto layout (absolute position)" = "Игнорировать автолейаут (абсолютная позиция)"
"Image" = "Изображение"
@@ -619,6 +634,7 @@ name = "Русский"
"Included" = "Включено"
"Included in layout" = "Участвует в компоновке"
"Individual corners" = "Углы по отдельности"
"Individual padding" = "Внутренние отступы по отдельности"
"Individual strokes" = "Обводки по отдельности"
"Ink" = "Чернила"
"Inner shadow" = "Внутренняя тень"
@@ -640,6 +656,7 @@ name = "Русский"
"Interaction" = "Взаимодействие"
"Interactions" = "Взаимодействия"
"Interface design and prototyping. A free, open-source, clean-room design tool written from scratch in Rust, part of the ArtCraft Crafting Apps." = "Дизайн интерфейсов и прототипирование. Бесплатный инструмент с открытым исходным кодом, независимо созданный с нуля на Rust, из семейства ArtCraft Crafting Apps."
"Interface size" = "Размер интерфейса"
"Intersect" = "Пересечение"
"Intersects" = "Пересечения"
"Invalid color" = "Недопустимый цвет"
@@ -689,6 +706,7 @@ name = "Русский"
"Leaves" = "Листья"
"Left" = "Слева"
"Left & right" = "Слева и справа"
"Left padding" = "Левый внутренний отступ"
"Left side" = "Левая сторона"
"Left side width" = "Ширина левой стороны"
"Letter case" = "Регистр букв"
@@ -761,6 +779,7 @@ name = "Русский"
"Mirror angle and length" = "Отражать угол и длину"
"Mirroring" = "Зеркальность"
"Missing" = "Отсутствует"
"Missing fonts" = "Отсутствующие шрифты"
"Missing layer" = "Слой отсутствует"
"Missing style" = "Стиль отсутствует"
"Missing variable" = "Переменная отсутствует"
@@ -911,10 +930,13 @@ name = "Русский"
"Open variables ({count})" = "Открыть переменные ({count})"
"Opened as a new document" = "Открыт как новый документ"
"Opened “{name}” in a new tab" = "«{name}» открыт в новой вкладке"
"Opening the file…" = "Открытие файла…"
"Opening {n} files as new files" = { one = "Открытие {n} файла как нового", few = "Открытие {n} файлов как новых", many = "Открытие {n} файлов как новых", other = "Открытие {n} файлов как новых" }
"Open|comments" = "Открытые"
"Options" = "Параметры"
"Orange" = "Оранжевый"
"Order" = "Порядок"
"Other" = "Другое"
"Other apps may not open every .fig file exported here." = "Другие приложения могут открыть не каждый экспортированный здесь файл .fig."
"Others lose access and keep their copy; the file stays on the server for you" = "Другие участники потеряют доступ, сохранив свои копии; файл останется на сервере для вас"
"Others type this under Share ▸ Join with a code" = "Другие участники вводят это в «Поделиться» ▸ «Подключиться по коду»"
@@ -974,6 +996,8 @@ name = "Русский"
"Place a shape or frame (its tool chosen)" = "Разместить фигуру или Frame (выбранным инструментом)"
"Place automatically" = "Разместить автоматически"
"Place image" = "Разместить изображение"
"Plugin" = "Плагин"
"Plugins & widgets" = "Плагины и виджеты"
"Plugins run in FigCraft's sandbox, without files, network or clock. Install only plugins you trust." = "Плагины работают в песочнице FigCraft без доступа к файлам, сети и часам. Устанавливайте только плагины, которым доверяете."
"Plugins" = "Плагины"
"Plus darker" = "Линейное затемнение"
@@ -1043,6 +1067,7 @@ name = "Русский"
"Reduce motion" = "Уменьшить движение"
"Refraction" = "Преломление"
"Regular expression" = "Регулярное выражение"
"Relative to your system's display scaling (100% is the system's own size). Document zoom is separate." = "Относительно масштаба экрана в системе (100% — собственный размер системы). Масштаб документа задаётся отдельно."
"Remove" = "Удалить"
"Remove all" = "Удалить всё"
"Remove annotation" = "Удалить аннотацию"
@@ -1066,6 +1091,7 @@ name = "Русский"
"Remove the else and its actions" = "Удалить «Иначе» и его действия"
"Remove this condition and its actions" = "Удалить это условие и его действия"
"Remove this file from the server? It can't be shared or opened from there again. Your copy stays open here." = "Удалить файл с сервера? Его больше нельзя будет открывать и публиковать оттуда. Ваша копия останется открытой здесь."
"Remove {name} from session" = "Убрать {name} из сессии"
"Remove {name} from {server}?" = "Удалить {name} с {server}?"
"Removed" = "Удалено"
"Removed from the server" = "Удалено с сервера"
@@ -1080,6 +1106,7 @@ name = "Русский"
"Rename on the server…" = "Переименовать на сервере…"
"Rename page" = "Переименовать страницу"
"Rename to" = "Новое имя"
"Reorder selection" = "Изменить порядок выделения"
"Replace all" = "Заменить всё"
"Replace mixed export settings" = "Заменить разные настройки экспорта"
"Replace with" = "Заменить на"
@@ -1115,6 +1142,7 @@ name = "Русский"
"Review and merge" = "Проверить и объединить"
"Ribbon" = "Лента"
"Right" = "Справа"
"Right padding" = "Правый внутренний отступ"
"Right side" = "Правая сторона"
"Right side width" = "Ширина правой стороны"
"Rotate 90°" = "Повернуть на 90°"
@@ -1134,6 +1162,8 @@ name = "Русский"
"Rulers" = "Линейки"
"Run" = "Запустить"
"Run {label}" = "Запустить {label}"
"Save files automatically" = "Автоматически сохранять файлы"
"Search pages" = "Поиск страниц"
"Search templates" = "Поиск шаблонов"
"See all templates" = "Все шаблоны"
"Select layers and they space themselves as their content changes" = "Выделите слои: интервалы между ними будут подстраиваться при изменении содержимого"
@@ -1278,6 +1308,7 @@ name = "Русский"
"Start from a blank canvas" = "Начать с пустого холста"
"Start from a template" = "Начать с шаблона"
"Start on path" = "Начало на пути"
"Start on the Home screen" = "Начинать с главной"
"Start point" = "Начальная точка"
"Start sharing" = "Включить общий доступ"
"Start sharing with the Share button, then pass on the code it gives" = "Включите общий доступ кнопкой «Поделиться», затем передайте полученный код"
@@ -1339,6 +1370,9 @@ name = "Русский"
"Texts" = "Тексты"
"Texture" = "Текстура"
"The canvas previews colors in sRGB; exported PNG, JPG and WebP files are tagged Display P3." = "На холсте цвета отображаются в sRGB; экспортированные PNG, JPG и WebP помечены профилем Display P3."
"The destination document is unavailable. Nothing was imported." = "Документ назначения недоступен. Ничего не импортировано."
"The destination document was closed. Nothing was imported." = "Документ назначения закрыт. Ничего не импортировано."
"The destination page was removed. Nothing was imported." = "Страница назначения удалена. Ничего не импортировано."
"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." = "Файл удаляется с сервера: его больше нельзя будет открыть или подключиться к нему оттуда. Отменить это нельзя. Уже открытые копии остаются у участников."
"The file now holds another library" = "Теперь файл содержит другую библиотеку"
"The file now holds another library (\"{name}\")" = "Теперь файл содержит другую библиотеку («{name}»)"
@@ -1348,6 +1382,7 @@ name = "Русский"
"The selection uses several text styles: click to apply one" = "В выделении несколько текстовых стилей: нажмите, чтобы применить один"
"The server deletes this file if nobody opens it before {date}." = "Сервер удалит файл, если никто не откроет его до {date}."
"The whole file" = "Весь файл"
"The window is too small for {size}%, so the interface is drawn at {drawn}%. Make the window larger to use {size}%." = "Окно слишком мало для {size}%, поэтому интерфейс отрисовывается в масштабе {drawn}%. Увеличьте окно, чтобы использовать {size}%."
"Theme" = "Тема"
"There's no destination for that action" = "Для этого действия не задано назначение"
"Thickness" = "Толщина"
@@ -1359,6 +1394,8 @@ name = "Русский"
"This file" = "Этот файл"
"This file has unsaved changes" = "В файле есть несохранённые изменения"
"This file is on {server}, open only to you. Share it to let others in with a new code." = "Файл находится на {server} и доступен только вам. Включите общий доступ, чтобы пригласить других по новому коду."
"This file is too large to join here (up to {mb} MB)" = "Этот файл слишком большой, чтобы подключиться здесь (до {mb} МБ)"
"This file uses fonts that aren't installed on this computer. Their text is drawn in a fallback font until you install them." = "В этом файле используются шрифты, не установленные на этом компьютере. Их текст отрисовывается запасным шрифтом, пока вы их не установите."
"This frame is new on the branch." = "Этот Frame добавлен в ветке."
"This frame isn't on the branch." = "Этого Frame нет в ветке."
"This server is open to the public: no key needed." = "Сервер общедоступен: ключ не нужен."
@@ -1378,6 +1415,7 @@ name = "Русский"
"Top" = "Сверху"
"Top & bottom" = "Сверху и снизу"
"Top left radius" = "Радиус верхнего левого угла"
"Top padding" = "Верхний внутренний отступ"
"Top right radius" = "Радиус верхнего правого угла"
"Transform" = "Трансформация"
"Triangle arrow" = "Треугольная стрелка"
@@ -1415,6 +1453,8 @@ name = "Русский"
"Update from selection" = "Обновить из выделения"
"Updated {components} and {styles}" = "Обновлено: {components} и {styles}"
"Updated {name}" = "Обновлено: {name}"
"Updating the graphics driver often helps. To use OpenGL only, start FigCraft from a Command Prompt with:" = "Часто помогает обновление драйвера видеокарты. Чтобы использовать только OpenGL, запустите FigCraft из командной строки с параметром:"
"Updating the graphics driver often helps. WGPU_BACKEND (vulkan, gl, metal) names another graphics API to try." = "Часто помогает обновление драйвера видеокарты. Переменная WGPU_BACKEND (vulkan, gl, metal) задаёт другой графический API, который можно попробовать."
"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." = "Загружает файл на сервер FigCraft и синхронизирует эту вкладку с ним. Вы получите ссылки для редактирования и просмотра."
"Uppercase" = "Прописные"
"Use a fixed value" = "Использовать фиксированное значение"
@@ -1424,6 +1464,7 @@ name = "Русский"
"Use number keys for opacity" = "Задавать непрозрачность цифровыми клавишами"
"Use the .figcraft or .fig extension." = "Используйте расширение .figcraft или .fig."
"Use the layer's fill" = "Использовать заливку слоя"
"Use your browser's zoom to change the interface size." = "Изменяйте размер интерфейса масштабом браузера."
"Used in {files} · {instances}" = "Используется в {files} · {instances}"
"Username" = "Имя пользователя"
"Value" = "Значение"
@@ -1458,6 +1499,7 @@ name = "Русский"
"Visibility" = "Видимость"
"Visible" = "Видимый"
"Vivid" = "Яркий"
"WGPU_BACKEND is set and names the graphics API to use; unsetting it lets FigCraft choose." = "Переменная WGPU_BACKEND задана и указывает используемый графический API; если её убрать, FigCraft выберет сам."
"Warm" = "Тёплый"
"Watch" = "Часы"
"Wavy" = "Волнистый"
@@ -1477,6 +1519,7 @@ name = "Русский"
"White" = "Белый"
"Who runs it, its terms and how long it keeps files" = "Оператор, условия и срок хранения файлов"
"Why it changed" = "Причина изменения"
"Widget" = "Виджет"
"Widgets" = "Виджеты"
"Width" = "Ширина"
"Width point" = "Точка ширины"
@@ -1574,6 +1617,7 @@ name = "Русский"
"nobody else here yet" = "здесь пока больше никого нет"
"non-default slot settings are not represented and were skipped" = "нестандартные настройки слотов не передаются и пропущены"
"now" = "сейчас"
"only in a text style or variable" = "только в текстовом стиле или переменной"
"or" = "или"
"point stroke joins were preserved; dashed or variable-width strokes render with the layer join" = "соединения обводки в точках сохранены; пунктирные обводки и обводки переменной ширины рисуются с соединением слоя"
"preferred slot component keys cannot be resolved to file nodes and were skipped" = "ключи предпочтительных компонентов слотов не удалось сопоставить со слоями файла, они пропущены"
@@ -1596,6 +1640,7 @@ name = "Русский"
"set-variable-mode actions on collections or modes that aren't in the variables JSON were skipped" = "действия смены режима переменных для коллекций или режимов, которых нет в JSON переменных, пропущены"
"slot content assignment target is missing or is not slot content" = "цель назначения содержимого слота отсутствует или не является содержимым слота"
"slot content assignment uses the empty GUID sentinel and was skipped" = "назначение содержимого слота использует пустой GUID-маркер и пропущено"
"slot layers without a matching slot property were imported as frames" = "слои слотов без подходящего свойства слота импортированы как фреймы"
"some vector points refer to point settings missing from the file; they use the layer's joins and plain corners" = "некоторые векторные точки ссылаются на настройки точек, которых нет в файле; они используют соединения слоя и обычные углы"
"some vector segments refer to style settings missing from the file; they use the layer's stroke" = "некоторые векторные сегменты ссылаются на настройки стиля, которых нет в файле; они используют обводку слоя"
"stale or invalid grid track sizing entries were ignored" = "устаревшие или недопустимые записи размеров треков сетки проигнорированы"
@@ -1682,6 +1727,7 @@ name = "Русский"
"{n} replies" = { one = "{n} ответ", few = "{n} ответа", many = "{n} ответов", other = "{n} ответа" }
"{n} rows" = { one = "{n} строка", few = "{n} строки", many = "{n} строк", other = "{n} строки" }
"{n} styles" = { one = "{n} стиль", few = "{n} стиля", many = "{n} стилей", other = "{n} стиля" }
"{n} text layers" = { one = "{n} текстовый слой", few = "{n} текстовых слоя", many = "{n} текстовых слоёв", other = "{n} текстовых слоя" }
"{n} variables" = { one = "{n} переменная", few = "{n} переменные", many = "{n} переменных", other = "{n} переменной" }
"{n} weeks ago" = { one = "{n} неделю назад", few = "{n} недели назад", many = "{n} недель назад", other = "{n} недели назад" }
"{n} years ago" = { one = "{n} год назад", few = "{n} года назад", many = "{n} лет назад", other = "{n} года назад" }
@@ -1690,6 +1736,7 @@ name = "Русский"
"{n}m" = "{n} мин"
"{n}w" = "{n} нед"
"{page}, nothing selected" = "{page}, ничего не выделено"
"{percent}%" = "{percent}%"
"{profile} (current)" = "{profile} (текущий)"
"{property} is its value; {property ? \"a\" : \"b\"} picks a string. Other {…} stays as written." = "{property} — значение свойства; {property ? \"a\" : \"b\"} выбирает строку. Другие {…} остаются как есть."
"{server} can't say what became of your files (it is older than this app)." = "{server} не может сообщить, что стало с вашими файлами (версия сервера старее приложения)."
@@ -1732,6 +1779,7 @@ name = "Русский"
"arrange.front" = "На передний план"
"arrange.packH" = "Уплотнить по горизонтали"
"arrange.packV" = "Уплотнить по вертикали"
"arrange.reorder" = "Изменить порядок выделения"
"arrange.roundToPixels" = "Округлить до пикселей"
"arrange.spacing" = "Интервал"
"arrange.tidy" = "Упорядочить"
@@ -1766,6 +1814,7 @@ name = "Русский"
"collab.publish" = "Опубликовать на сервере"
"collab.recoverFile" = "Восстановить онлайн-файл"
"collab.registerLinks" = "Открывать ссылки приглашения в FigCraft"
"collab.removePerson" = "Убрать из сессии"
"collab.report" = "Пожаловаться на файл оператору сервера"
"collab.serverInfo" = "Информация о сервере"
"collab.share" = "Поделиться по коду подключения"
@@ -1944,6 +1993,7 @@ name = "Русский"
"object.batchRename" = "Массовое переименование"
"object.convertToFrame" = "Преобразовать во Frame"
"object.convertToGroup" = "Преобразовать в группу"
"object.convertToSection" = "Преобразовать в секцию"
"object.flipH" = "Отразить по горизонтали"
"object.flipV" = "Отразить по вертикали"
"object.frameSelection" = "Поместить выделение во Frame"
@@ -1990,6 +2040,7 @@ name = "Русский"
"plugin.ui" = "Панель плагина"
"plugins.manage" = "Управление плагинами…"
"plugins.runLast" = "Запустить последний плагин"
"pref.autoSave" = "Автоматически сохранять файлы"
"pref.highlightHover" = "Подсвечивать слои при наведении"
"pref.keepTool" = "Оставлять инструмент выбранным после использования"
"pref.language" = "Язык интерфейса"
@@ -1999,6 +2050,8 @@ name = "Русский"
"pref.reduceMotion" = "Уменьшить движение"
"pref.renameDuplicates" = "Переименовывать дубликаты слоёв"
"pref.showDimensions" = "Показать размеры объектов"
"pref.startOnHome" = "Начинать с главной"
"pref.uiScale" = "Размер интерфейса"
"pref.userName" = "Ваше имя в комментариях"
"proto.action.add" = "Добавить действие прототипа"
"proto.action.move" = "Изменить порядок действия прототипа"
@@ -2104,14 +2157,18 @@ name = "Русский"
"text.listIndent" = "Увеличить отступ списка"
"text.listOutdent" = "Уменьшить отступ списка"
"text.listStyle" = "Стиль списка"
"text.loadFont" = "Загрузить файл шрифта"
"text.maxLines" = "Максимум строк"
"text.missingFonts" = "Отсутствующие шрифты"
"text.numberList" = "Нумерованный список"
"text.onPath" = "Текст на пути"
"text.paragraphIndent" = "Абзацный отступ"
"text.paragraphSpacing" = "Интервал между абзацами"
"text.pathOptions" = "Параметры текста на пути"
"text.preview" = "Предпросмотр изменения текста"
"text.refit" = "Подогнать текст под шрифты"
"text.removeFromPath" = "Снять текст с пути"
"text.rescanFonts" = "Повторно найти установленные шрифты"
"text.set" = "Задать текст"
"text.setFeatures" = "Функции OpenType"
"text.setVariations" = "Оси вариативного шрифта"
+2 -1
View File
@@ -27,7 +27,8 @@ pub struct Lang {
pub code: &'static str,
/// The language's own name for itself (the language picker shows it untranslated).
pub name: &'static str,
/// Machine-drafted, waiting for a native speaker's review (`[meta] status`).
/// A draft (`[meta] status` set): waiting for a native speaker's review, or reviewed and waiting for
/// a maintainer's approval.
pub draft: bool,
/// Index into [`LANGS`] of the catalog a regional one overlays ("es" under "es-419": it lists
/// only what differs), else 0 (English).
+4 -2
View File
@@ -17,7 +17,9 @@ Simplified.
The catalogs: English (`en`, the source), and Spanish (`es`, with the Latin American overlay
`es-419`), French (`fr`), German (`de`), Dutch (`nl`), Brazilian Portuguese (`pt-BR`), Japanese
(`ja`), Korean (`ko`), Simplified Chinese (`zh-Hans`), Czech (`cs`), Indonesian (`id`), Finnish
(`fi`), Polish (`pl`), Georgian (`ka`) and Bengali (`bn`), machine-drafted and waiting for native speakers' review. Russian (`ru`, Русский) was
(`fi`), Polish (`pl`) and Bengali (`bn`), machine-drafted and waiting for native speakers' review. Georgian
(`ka`) was written with AI assistance and reviewed by a native speaker, and stays a draft until a
maintainer changes its status. Russian (`ru`, Русский) was
reviewed and approved by VanTan; its catalog keeps Frame, Dev Mode and Smart animate as familiar
tool names and uses « » quotes. Turkish (`tr`) was machine-drafted and reviewed by a native speaker,
and Swedish (`sv`) translates every UI string, command label and menu wording.
@@ -106,7 +108,7 @@ picker leaves Georgian out. A new CJK or other non-Latin language also needs its
The check fails on keys the code uses that `en.toml` lacks (it prints the lines to paste), keys no
code uses, unknown command ids, placeholders that don't match English, and, for complete languages,
anything untranslated. Machine-drafted catalogs stay marked as drafts until a native speaker has
reviewed them.
reviewed them; a reviewed catalog stays a draft until a maintainer approves it (its `status` says which).
## Adding strings in code