import { type LocaleCode } from "@agent-native/core/client/i18n";
import { creativeContextMessagesByLocale } from "@agent-native/creative-context/messages";
import { breakpointBarOverrides } from "./i18n-breakpoints";
import {
attachLocalizedKeyboardShortcuts,
keyboardKeyLabels,
keyboardShortcutLabels,
} from "./i18n-keyboard-shortcuts";
import { motionDockOverrides } from "./i18n-motion";
import { designTemplateFeatureOverrides } from "./i18n-template-feature";
import zhTW from "./i18n/zh-TW";
const enUS = {
creativeContext: creativeContextMessagesByLocale["en-US"],
root: {
commandActions: "Actions",
commandSearch: "Search",
commandAppearance: "Appearance",
openAgent: "Open Agent",
toggleTheme: "Toggle theme",
},
navigation: {
brand: "Design",
designs: "Designs",
templates: "Templates",
designSystems: "Design Systems",
setupDesignSystem: "Set up design system",
agent: "Agent",
settings: "Settings",
openNavigation: "Open navigation",
expandSidebar: "Expand sidebar",
collapseSidebar: "Collapse sidebar",
},
settings: {
agentTitle: "Manage agent",
agentDescription:
"Manage the agent's model, API keys, automations, voice, and other controls.",
openAgentSettings: "Manage agent",
languageTitle: "Language",
languageDescription: "Choose the interface language for Design.",
languageLabel: "Interface language",
},
pages: {
presentEmpty: "No content to present",
presentBackToEditor: "Back to editor",
presentExitHint: "Press Esc to exit",
notFoundDescription: "The page you are looking for does not exist.",
notFoundSignIn: "Sign in",
notFoundBackToDesigns: "Back to designs",
teamCreateOrgDescription:
"Set up a team to share designs with your colleagues.",
},
chat: {
emptyState: "Describe a design to create",
suggestionLandingPage: "Design a landing page for my startup",
suggestionBrandMatch: "Make this match our brand",
suggestionMobile: "Add a mobile version of this",
figmaLink: {
frameDetected: "Figma frame detected",
fileDetected: "Figma file detected",
connected: "Connected",
connectedLast4: "Connected ••••{{last4}}",
checkingConnection: "Checking Figma connection…",
connectionCheckFailed: "Could not check the Figma connection",
connectFailed: "Could not connect Figma",
connectDescription:
"Connect once to import, inspect, or reuse this Figma link through chat.",
tokenLabel: "Figma access token",
tokenPlaceholder: "Paste Figma access token",
connecting: "Connecting…",
connect: "Connect",
getToken: "Get token",
importFrame: "Import frame",
chooseFrame: "Choose frame",
inspect: "Inspect",
exportSvg: "Export SVG",
actionsPrefill: "Review, then send",
retry: "Retry",
},
},
common: {
genericError: "Something went wrong",
},
editPanel: {
colorInputLabel: "color",
properties: "Properties",
pageHelpTitle: "Click any element on the canvas",
pageHelpDescription:
"Edit typography, spacing, sizing, borders and fill for whatever you select. Page defaults below.",
sections: {
page: "Page",
typography: "Typography",
autoLayout: "Auto layout",
positionLayout: "Position",
flexLayout: "Flex Layout",
layout: "Layout",
spacing: "Spacing",
border: "Border",
fill: "Fill",
stroke: "Stroke",
effects: "Effects",
codeConfidence: "Code",
export: "Export",
},
textResize: {
autoWidth: "Auto width",
autoHeight: "Auto height",
fixed: "Fixed size",
},
labels: {
background: "Background",
font: "Font",
baseSize: "Base Size",
size: "Size",
weight: "Weight",
color: "Color",
align: "Align",
lineHeight: "Line Height",
tracking: "Tracking",
direction: "Direction",
justify: "Justify",
gap: "Gap",
width: "Width",
height: "Height",
opacity: "Opacity",
padding: "Padding",
margin: "Margin",
radius: "Radius",
flexGrow: "Grow",
flexShrink: "Shrink",
flexBasis: "Basis",
order: "Order",
alignSelf: "Align self",
gridColumn: "Column",
gridRow: "Row",
position: "Position",
display: "Display",
image: "Image",
style: "Style",
rotation: "Rotation",
flipHorizontal: "Flip horizontal",
flipVertical: "Flip vertical",
shadow: "Shadow",
filter: "Filter",
addLayer: "Add layer",
removeLayer: "Remove layer",
showLayer: "Show layer",
hideLayer: "Hide layer",
reorderLayer: "Reorder layer",
stylesComingSoon: "Styles — Coming soon",
linkSides: "Link sides",
unlinkSides: "Unlink sides",
allSides: "All",
lockAspectRatio: "Lock aspect ratio",
unlockAspectRatio: "Unlock aspect ratio",
cornerRadius: "Corner radius",
independentCorners: "Independent corners",
topLeft: "TL",
topRight: "TR",
bottomLeft: "BL",
bottomRight: "BR",
blend: "Blend",
border: "Border",
outline: "Outline",
inside: "Inside",
outside: "Outside",
center: "Center",
dropShadow: "Drop shadow",
addDropShadow: "Add drop shadow",
innerShadow: "Inner shadow",
layerBlur: "Layer blur",
blur: "Blur",
spread: "Spread",
rotation3d: "3D rotation",
rotationX: "Rotate X",
rotationY: "Rotate Y",
perspective: "Perspective",
perspectiveHint: "Perspective (empty/0 = none)",
customTransform: "Custom transform — can't be edited as X/Y/Z rotation",
shaderEffectType: "Shader",
},
shaders: {
fillsTitle: "Shader fills",
effectsTitle: "Shader effects",
createdByYou: "Created by you",
presets: "Presets",
createNew: "Create new",
ai: "AI",
savedInThisDesign: "Saved in this design",
noMatches: "No shaders match your search",
backToBrowser: "Back to shader browser",
closePanel: "Close shader panel",
editCode: "Edit GLSL code",
removeShader: "Remove shader",
removeShaderEffect: "Remove shader effect",
noUniforms: "This shader has no adjustable uniforms",
codeHint:
"The GLSL source is saved in this screen's HTML — open the Code panel to edit it.",
selectElementFirst: "Select a screen element first",
selectCanvasElementFirst: "Select an element on the canvas first",
saveFailed: "Could not save the shader",
categories: {
gradientFlow: "Gradient flow",
waves: "Waves",
noise: "Noise",
pattern: "Patterns",
texture: "Texture",
retro: "Retro",
},
},
interactionStates: {
default: "Default",
hover: "Hover",
focus: "Focus",
focusVisible: "Focus visible",
active: "Pressed",
disabled: "Disabled",
selectorLabel: "Interaction state",
selectorTooltip: "Preview and edit hover, focus, and pressed states",
editingState: "Editing {{state}} state",
editingStateTooltip:
"Editing the {{state}} state — styles here apply only when this element is {{state}}",
hasOverrideIndicator: "This property is overridden in this state",
reset: "Reset",
resetOverride: "Reset override",
resetOverrideTooltip:
"Clear this state's override and use the default value",
},
motionKeyframe: {
addTooltip: "Add keyframe",
removeTooltip: "Remove keyframe",
},
breakpointOverride: {
overriddenTooltip: "Overridden at this breakpoint",
overriddenAtTooltip: "Overridden at {{width}}px",
reset: "Reset override",
resetShort: "Reset",
resetTooltip: "Clear this breakpoint's override and use the base value",
},
selection: {
pageContext: "Page defaults",
},
layoutContext: {
container: "Container",
child: "Child",
gridChild: "Grid child",
parent: "Parent",
flexContainer: "Flex",
notContainer: "Flow",
flexChild: "Flex child",
flowChild: "Flow child",
flowDescription:
"This layer is in normal document flow. Use position controls for explicit offsets, or ask the agent for structural layout changes.",
},
codeStatus: {
safeStyle: "Safe style edit",
safeStyleDescription:
"These controls patch inline styles immediately, then persist the HTML source.",
classTarget: "Stable class/id target",
selectorFallback: "Selector fallback",
agentStructural: "Agent needed for structural moves",
agentStructuralDescription:
"Moves, wrappers, and parent layout rewrites need the agent to preserve intent.",
},
sidePlaceholders: {
top: "T",
right: "R",
bottom: "B",
left: "L",
},
fontFamilies: {
inherit: "Inherit",
sansSerif: "Sans Serif",
serif: "Serif",
monospace: "Monospace",
inter: "Inter",
poppins: "Poppins",
playfairDisplay: "Playfair Display",
jetBrainsMono: "JetBrains Mono",
},
fontWeights: {
thin: "Thin",
extraLight: "Extra Light",
light: "Light",
regular: "Regular",
medium: "Medium",
semiBold: "Semi Bold",
bold: "Bold",
extraBold: "Extra Bold",
black: "Black",
},
textAligns: {
left: "Left",
center: "Center",
right: "Right",
justify: "Justify",
},
textDecorations: {
underline: "Underline",
strikethrough: "Strikethrough",
},
textCases: {
none: "None",
uppercase: "Uppercase",
lowercase: "Lowercase",
capitalize: "Capitalize",
},
typographyDetails: {
basicsTab: "Basics",
detailsTab: "Details",
decorationLabel: "Decoration",
caseLabel: "Case",
},
flexDirections: {
row: "Row",
column: "Column",
rowReverse: "Row Reverse",
columnReverse: "Column Reverse",
},
justifyOptions: {
start: "Start",
center: "Center",
end: "End",
between: "Between",
around: "Around",
evenly: "Evenly",
},
alignOptions: {
start: "Start",
center: "Center",
end: "End",
stretch: "Stretch",
baseline: "Baseline",
},
alignSelfOptions: {
auto: "Auto",
start: "Start",
center: "Center",
end: "End",
stretch: "Stretch",
baseline: "Baseline",
},
displayOptions: {
block: "Block",
flex: "Flex",
grid: "Grid",
inline: "Inline",
inlineBlock: "Inline block",
none: "None",
},
positionOptions: {
static: "Static",
relative: "Relative",
absolute: "Absolute",
fixed: "Fixed",
sticky: "Sticky",
},
borderStyleOptions: {
none: "None",
solid: "Solid",
dashed: "Dashed",
dotted: "Dotted",
double: "Double",
},
framePresets: {
title: "Frame",
categories: {
phone: "Phone",
tablet: "Tablet",
desktop: "Desktop",
presentation: "Presentation",
watch: "Watch",
paper: "Paper",
socialMedia: "Social media",
adUnit: "Ad unit",
},
},
},
designEditor: {
askAgent: "Ask agent",
autoLayoutSuggestion: {
menuLabel: "Suggest auto layout…",
title: "Suggest auto layout",
description:
"Review the layout inferred from measured child geometry. Nothing changes until you apply it.",
preview: "Auto layout preview",
sizing: "Sizing",
fixed: "Fixed",
hug: "Hug",
cancel: "Cancel",
apply: "Apply auto layout",
selectContainer:
"Select one container with children to get a suggestion.",
stale:
"The container changed. Preview a fresh suggestion before applying.",
warnings: {
overlap:
"Some children overlap, so this proposal cannot be safely applied.",
irregular: "Spacing is irregular; the median gap is shown.",
transformed:
"Transformed children need manual review before conversion.",
},
},
componentInstances: {
selectLayer: "Select layer",
goToMain: "Go to main component",
swap: "Swap instance",
detach: "Detach instance",
searchComponents: "Search components…",
loading: "Loading…",
noOtherComponents: "No other components found",
goToMainUnavailable: "Go to main component isn't available yet.",
onlyKnownInstance: "This is the only known instance of this component.",
resolveMainFailed: "Couldn't resolve the main component.",
detachFailed: "Couldn't detach this instance.",
detached: "Instance detached.",
swapFailed: "Couldn't swap this instance.",
swappedFor: 'Swapped for "{{name}}".',
openPanelNudge: "Use the Swap instance picker in the Component panel.",
openPanelFailed: "Could not open the component panel.",
},
makeItRealCard: {
open: "Open",
choose: "Choose",
connect: "Connect",
generating: "Generating",
generate: "Generate",
migrationFailed: "Migration failed. Please try again.",
},
componentProps: {
alpineTooComplexToEdit:
"Can’t safely edit this prop inline — this component’s Alpine state is too complex. Edit the source instead.",
label: "Props",
},
componentSource: {
editSource: "Edit component source",
needsConnectedApp: "Source jump needs a connected app",
},
leftRail: {
file: "File",
agent: "Agent",
assets: "Assets",
import: "Import",
tools: "Tools",
tokens: "Tokens",
label: "Design workspace",
},
breakpointBar: {
base: "Base",
editBaseWidth: "Edit base width",
addBreakpoint: "Add breakpoint",
remove: "Remove breakpoint",
options: "Breakpoint options",
changeWidth: "Change width",
customWidth: "Custom width",
add: "Add",
showAllBreakpoints: "Show all breakpoints",
desktop: "Desktop",
tablet: "Tablet",
phone: "Phone",
scope: {
label: "Responsive edit scope",
cascadeSmaller: "This breakpoint and smaller",
only: "This breakpoint only",
firstEditGuidance:
"Responsive edits affect this breakpoint and smaller sizes by default. Change the scope beside the breakpoint control.",
},
},
screenDeletion: {
titleOne: "Delete this screen?",
titleMany: "Delete {{count}} screens?",
descriptionOne:
'"{{filename}}" and all of its responsive variants will be deleted. You can undo this while the editor remains open.',
descriptionMany:
"These screens and all of their responsive variants will be deleted. You can undo this while the editor remains open.",
cancel: "Cancel",
confirm: "Delete",
},
motion: {
dockLabel: "Motion dock",
collapseDock: "Collapse motion dock",
play: "Play",
pause: "Pause",
resetPlayhead: "Reset playhead",
reset: "Reset",
addKeyframeAtPlayhead: "Add keyframe at playhead",
addKeyframeAtPlayheadForProperty:
"Add keyframe at playhead ({{property}})",
selectPropertyRowFirst: "Select a property row first",
currentTimeMs: "Current time in ms",
duration: "Duration",
durationMs: "Duration in ms",
playbackMode: "Playback mode: {{mode}}",
playback: "Playback: {{mode}}",
loop: "Loop",
once: "Once",
pingPong: "Ping-pong",
toggleAutoKeyframe: "Toggle auto-keyframe",
autoKeyframe: "Auto-keyframe",
savingMotion: "Saving motion",
emptyStateAnimate: "Animate",
emptyStatePickProperty: ". Pick a property to add the first track.",
emptyStateNoSelection:
"Select an element on the canvas, then add a track to animate it.",
addMotion: "Add motion",
selectElementFirst: "Select an element on the canvas first",
animateLayer: 'Animate "{{label}}"',
more: "More",
addKeyframe: "Add keyframe",
trackExists:
'A "{{property}}" track already exists for {{label}}. Edit its keyframes in the timeline instead.',
layerAnimationSpan: "{{label}} animation span",
keyframeAt: "Keyframe at {{ms}}ms",
deleteKeyframe: "Delete keyframe",
segmentEasing: "Segment easing: {{ease}}",
curveTab: "Curve",
springTab: "Spring",
customBezier: "Custom bezier",
customSpring: "Custom spring",
bounce: "Bounce",
bezierCurveEditor: "Bezier curve editor",
springCurvePreview: "Spring curve preview",
defaultEase: "Default",
},
applyToSource: "Apply to source",
applyToSourcePath: "Apply to source ({{path}})",
applyToSourceUnavailableCompiled:
"Source write-back isn't available yet for compiled framework routes (React/TS components). Ask the agent to edit the source file instead.",
writingToSource: "Writing…",
appliedToSource: "Saved to {{path}}",
applyToSourceConflict:
"{{path}} changed on disk since it was opened. Reload the screen and try again.",
applyToSourceError: "Couldn't save to source: {{message}}",
tokens: {
title: "Tokens",
newToken: "New token",
cssVar: "CSS variable",
value: "Value",
add: "Add token",
refresh: "Refresh tokens",
import: "Import tokens",
importTitle: "Import tokens",
importHint:
"Use design.md, CSS, theme files, or the current design before adding tokens by hand.",
files: "Files",
folder: "Folder",
current: "Current",
pastePlaceholder: "--color-accent: #2563eb;\nPrimary color: #2563eb",
importPasted: "Import pasted tokens",
importedCount: "Imported {{count}} tokens",
empty: "No tokens yet",
emptyHint: "Add design tokens to reuse colors, spacing, and more.",
applying: "Applying…",
},
import: {
title: "Import",
description:
"Bring in Figma clipboard HTML or standalone HTML as Design screens.",
figmaUrlTitle: "Figma frame URL",
figmaUrlDescription: "Import a frame or file from a Figma link.",
figmaUrlLabel: "Figma frame or file URL",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "Checking Figma connection…",
figmaConnected: "Figma connected",
figmaConnectedWithSuffix: "Figma connected · ••••{{suffix}}",
figmaTokenLabel: "Figma access token",
figmaTokenDocs: "Get a token",
figmaTokenPlaceholder: "Paste your Figma personal access token",
figmaTokenDescription:
'Needs "File content" and "Current user" scopes. Saved securely — never added to chat.',
importFigmaUrl: "Import from Figma",
saveKeyAndImport: "Save key and import",
figmaUrlSuccess: "Imported from Figma.",
figmaImageFallbackWarning:
"Image fallbacks: {{count}}. Appearance is preserved, but these layers are not fully editable.",
figmaApproximationWarning:
"Approximated layers: {{count}}. HTML/CSS cannot represent every Figma property exactly.",
figmaPasteTitle: "Paste from Figma",
figmaPasteDescription:
"Copy a frame or layer in Figma, then paste into the Design canvas. Design imports the visible clipboard HTML.",
figmaPasteTarget: "Paste into the canvas",
figmaPasteApiKeyHint:
"Connect your Figma access token for exact node imports.",
figmaPasteMatchGuidance:
"Couldn't match this to specific Figma nodes. Paste a frame link instead for an exact import.",
figmaPasteRestLabel: "Imported via Figma API",
figmaPasteHtmlLabel: "Imported from clipboard preview",
figmaPasteLocalKiwiLabel:
"Imported without token — geometry and text only",
figmaPasteImagesNeedToken:
"{{count}} image{{plural}} need Figma access to load.",
figmaHydrationDialogTitle: "Fill in the missing images",
figmaHydrationDialogDescription:
"{{count}} image{{plural}} in the imported screen{{screensPlural}} couldn't come through the paste — Figma's clipboard leaves image data out. Fill from the original .fig, or fetch the exact images from the copied frame.",
figmaHydrationConnectAndLoad: "Connect & fetch images",
figmaHydrationSuccess: "Images loaded successfully",
figmaHydrationSuccessDescription:
"{{count}} image{{plural}} filled in from Figma.",
figmaHydrationRecommended: "Recommended",
figmaHydrationFigTitle: "Have the original .fig file?",
figmaHydrationFigOption:
"Fastest — pulls every image straight from the file. No token, no rate limits.",
figmaHydrationChooseFig: "Fill images from .fig",
figmaHydrationOrToken: "Or fetch from Figma",
figmaHydrationTokenDescription:
'Fetches the exact images from the copied frame\'s Figma file. Needs "File content" and "Current user" scopes; saved securely, never shown in chat.',
figmaHydrationRateLimit:
"Figma rate-limits its API by seat — Viewer/Collab seats get only a few requests, Dev/Full seats more. If it's cooling down, use the .fig above.",
figmaHydrationFigSuccessDescription:
"{{count}} image{{plural}} filled in from the .fig file.",
figmaHydrationInvalidFig: "Choose a .fig file exported from Figma.",
figmaHydrationFigError: "Couldn't read images from that .fig file.",
figUploadTitle: "Upload .fig",
figUploadDescription:
"Local import using Figma's .fig format — no API quota. Embedded images are included. Format may change between Figma versions. Maximum 50 MB.",
chooseFigFile: "Choose .fig file",
figUploadUploading: "Uploading {{progress}}%",
figUploadProcessing: "Converting…",
figUploadDescriptionShort:
"Local import — no Figma API quota used. Embedded images included.",
figmaPasteBodyUnlimited:
"Works without a Figma token — geometry, layout, and text import immediately.",
figmaPasteBodyImages:
"Image fills may be missing without a token. Upload the .fig file to include embedded images.",
rateLimitTitle: "Figma paused this import",
rateLimitLowSeat:
"Your seat type (Viewer/Collab) has a limited Figma API quota for file imports — up to 6 requests per month per the official Figma docs.",
rateLimitGeneric:
"Figma rate-limited this import. The quota resets automatically.",
rateLimitRetryIn: "Try again in {{time}}.",
rateLimitAlternatives: "No-quota alternatives:",
rateLimitUsePaste: "Paste from Figma — unlimited",
rateLimitUseFig: "Upload .fig — unlimited",
rateLimitUpgrade: "View Figma plan options →",
htmlTitle: "Import HTML",
htmlDescription:
"Paste or upload standalone HTML. Design stores it as a new screen without injecting it into this editor UI.",
htmlPlaceholder: "Paste standalone HTML here...",
importHtml: "Import HTML",
chooseHtmlFile: "Choose HTML file",
githubTitle: "GitHub",
githubDescription:
"Coming soon: import screens and components directly from a repository.",
localTitle: "Local app",
localDescription: "Connect any running local app with /visual-edit.",
visualEditGuidance:
"Install the /visual-edit skill, start any local app, then run the bridge command from that app repo so your agent can add URL-backed screens.",
comingSoon: "Coming soon",
warningsToast: "Import completed with warnings",
figmaSuccess: "Figma paste imported",
htmlSuccess: "HTML imported",
uploadSuccess: "File imported",
lastImport: "Last import",
errors: {
figmaUrlRequired: "Paste a Figma frame or file URL.",
invalidFigmaUrl: "Enter a valid figma.com frame or file URL.",
figmaImportFailed: "Couldn’t import from Figma",
notHtml: "Paste or choose valid HTML to import.",
importFailed: "Import failed",
figmaPasteFailed: "Figma paste import failed",
uploadFailed: "File upload failed",
invalidFigFile: "Choose a file ending in .fig.",
figFileTooLarge: ".fig files must be 50 MB or smaller.",
},
},
generationMayHaveStopped:
"Generation may have stopped before creating files. Check the agent message or try again.",
generationMayHaveStoppedToast:
"Generation may have stopped before creating files.",
generationStoppedRetry:
"Generation stopped before creating files. Try again to continue from the same prompt.",
generationStoppedCheckAgent:
"Generation stopped before creating files. Check the agent message or try again.",
notFound: "Design not found",
backToDesigns: "Back to designs",
saveAsTemplate: "Save as template…",
saveTemplateDescription:
"Capture the current screens, dimensions, defaults, and locked layers as a reusable starting point.",
templateName: "Template name",
templateDescription: "Description",
templateCategory: "Category",
templateSnapshotSummary:
"{{screens}} screen(s) · {{locks}} locked layer(s) will be preserved",
saveTemplate: "Save template",
templateSaved: "Template saved with {{count}} locked layer(s)",
templateSaveFailed: "Could not save this template",
clickToRename: "Click to rename",
collaborators: "Collaborators",
share: "Share",
signUpToSave: "Sign up free to save",
signUpToSaveDescription:
"Sign up for a free account to save designs, screen layouts, and generate new ones.",
signUpToShare: "Sign up to share",
shareEditorLink: "Design editor link",
shareEditorLinkDescription:
"Anyone with access can open this design in the editor.",
modes: {
annotate: "Annotate",
comment: "Comment",
edit: "Edit",
draw: "Draw",
interact: "Interact",
screens: "Screens",
},
fileTabs: "Files",
tools: {
move: "Move",
frame: "Frame",
rect: "Rectangle",
line: "Line",
arrow: "Arrow",
ellipse: "Ellipse",
polygon: "Polygon",
star: "Star",
imageVideo: "Image/video...",
text: "Text",
pen: "Pen",
hand: "Hand",
scale: "Scale",
},
keyboardShortcuts: {
title: "Keyboard shortcuts",
close: "Close keyboard shortcuts",
codeContext: "Code",
screenContext: "Screen",
keys: {
or: "or",
command: "Command",
control: "Control",
option: "Option",
alt: "Alt",
shift: "Shift",
arrowDown: "Down Arrow",
arrowLeft: "Left Arrow",
arrowRight: "Right Arrow",
arrowUp: "Up Arrow",
backspace: "Backspace",
delete: "Delete",
enter: "Enter",
tab: "Tab",
questionMark: "Question Mark",
backslash: "Backslash",
equals: "Equals",
minus: "Minus",
leftBracket: "Left Bracket",
rightBracket: "Right Bracket",
},
descriptions: {
toggleUi:
"Press it now to quickly hide the panes and focus on your work",
undo: "Step back through your most recent design change",
redo: "Restore the design change you just undid",
},
categories: {
essential: "Essential",
tools: "Tools",
view: "View",
zoom: "Zoom",
text: "Text",
shape: "Shape",
selection: "Selection",
cursor: "Cursor",
edit: "Edit",
transform: "Transform",
arrange: "Arrange",
components: "Components",
layout: "Layout",
},
commands: {
showShortcuts: "Show keyboard shortcuts",
undo: "Undo",
redo: "Redo",
moveTool: "Move tool",
frameTool: "Frame tool",
textTool: "Text tool",
penTool: "Pen tool",
handTool: "Hand tool",
scaleTool: "Scale tool",
commentTool: "Comment tool",
drawTool: "Draw tool",
showLayers: "Show layers",
showAssets: "Show assets",
toggleUi: "Show/Hide UI",
toggleComments: "Show or hide comments",
zoomIn: "Zoom in",
zoomOut: "Zoom out",
zoomReset: "Zoom to 100%",
zoomFit: "Zoom to fit",
zoomSelection: "Zoom to selection",
underline: "Underline",
strikethrough: "Strikethrough",
rectangle: "Rectangle",
ellipse: "Ellipse",
line: "Line",
arrow: "Arrow",
selectAll: "Select all",
selectParent: "Select parent",
enterSelection: "Enter selection",
nextSibling: "Next sibling",
previousSibling: "Previous sibling",
nextScreen: "Next screen",
previousScreen: "Previous screen",
nudge: "Nudge",
nudgeLarge: "Nudge by 10",
copy: "Copy",
copyPng: "Copy as PNG",
cut: "Cut",
paste: "Paste",
pasteOver: "Paste over selection",
copyProperties: "Copy properties",
pasteProperties: "Paste properties",
pasteReplace: "Paste to replace",
duplicate: "Duplicate",
delete: "Delete",
rename: "Rename",
find: "Find layers",
flipHorizontal: "Flip horizontal",
flipVertical: "Flip vertical",
swapFillStroke: "Swap fill and stroke",
bringForward: "Bring forward",
sendBackward: "Send backward",
bringFront: "Bring to front",
sendBack: "Send to back",
alignLeft: "Align left",
alignRight: "Align right",
alignTop: "Align top",
alignBottom: "Align bottom",
tidy: "Tidy up",
createComponent: "Create component",
detachInstance: "Detach instance",
group: "Group selection",
ungroup: "Ungroup selection",
frameSelection: "Frame selection",
autoLayout: "Add auto layout",
},
},
undo: "Undo",
undoShortcut: "Undo (⌘Z)",
redo: "Redo",
redoShortcut: "Redo (⇧⌘Z)",
duplicate: "Duplicate",
delete: "Delete",
view: "View",
returnToCurrentScreen: "Return to current screen",
openScreenOverview: "Open screen overview",
currentScreen: "Current screen",
screenOverview: "Screen overview",
devicePreview: "Device preview",
devices: {
responsive: "Responsive",
desktop: "Desktop",
tablet: "Tablet",
mobile: "Mobile",
},
zoom: "Zoom",
zoomOut: "Zoom out",
zoomIn: "Zoom in",
more: "More",
stopPinningComments: "Stop pinning comments",
pinComment: "Pin comment",
export: "Export",
downloadHtml: "Download HTML",
downloadPng: "Download PNG",
downloadSvg: "Download SVG",
downloadFigmaSvg: "Download for Figma (SVG)",
downloadZip: "Download ZIP",
downloadPdfAllScreens: "Download PDF (all screens)",
exportHtml: "Export HTML",
exportPdf: "Export PDF",
copyCodingHandoff: "Copy agent prompt",
designTools: "Design tools",
drawOnCanvas: "Draw on canvas",
dropCommentPin: "Drop comment pin",
presentInThisTab: "In this tab",
presentFullscreen: "Fullscreen",
presentNewTab: "New tab",
pickDirection: "Pick a direction",
variations: "{{count}} variations",
close: "Close",
generating: "Generating design...",
noFiles: "No files yet. Ask the agent to generate a design.",
tryAgain: "Try again",
newPrompt: "New prompt",
generateDesign: "Generate design",
hideTweaks: "Hide tweaks",
showTweaks: "Show tweaks",
tweaks: "Tweaks",
addTweaks: "Add tweaks",
addTweakControls: "Add tweak controls",
closeTweaks: "Close tweaks",
tweaksHelp:
"Tweaks are breakpoint- and state-specific visual overrides layered on the base design. Reset a control to return to the inherited value.",
tweaksDocs: "Learn more.",
noTweakControls: "No tweak controls yet.",
extensions: "Extensions",
addExtension: "Extension",
extensionsDocs: "Docs",
extensionsPromptTitle: "What should this extension do?",
extensionsPlaceholder:
"Style tools, selection helpers, artboard actions...",
extensionsEmptyTitle: "No editor extensions yet",
extensionsEmptyDescription:
"Build a small inspector extension that can read the selected element, call actions, or ask the agent to update the artboard.",
extensionsAvailable: "Available",
extensionsInstall: "Add",
extensionsInstallError: "Failed to install extension",
generatePlaceholder: "Describe what you want to build...",
tweaksPromptTitle: "What tweaks do you want?",
tweaksPlaceholder: "Accent options, density, radius, dark mode...",
designExport: "Design export",
designPreview: "Design Preview",
presentMode: "Present Mode",
useThisDirection: "Use this direction",
variantHandoffHelp:
"Paste this summary into your coding agent to continue.",
summaryCopied: "Summary copied",
selectSummaryToCopy: "Select the summary to copy it",
dismiss: "Dismiss",
copied: "Copied",
copySummary: "Copy summary",
closeAllTabs: "Close All",
closeOtherTabs: "Close Others",
closeTab: "Close",
fitToScreen: "Fit to screen",
patchProof: {
title: "Patch proof",
file: "File",
source: "Source",
capability: "Capability",
pending: "Runtime preview applied; source write pending",
verified: "Source write verified; rollback available",
rollback: "Rollback",
keep: "Keep",
selectorMissing: "The selected element no longer exists in this screen.",
status: {
runtime: "Runtime style applied",
queued: "Writing source patch",
applied: "Patch applied",
failed: "Patch failed",
rolledBack: "Rolled back",
},
},
pendingVisualStyles: {
applyAria: "Apply design updates",
applyButton: "Apply styles",
previewLabel: "Pending visual preview",
applyDesignUpdates: "Apply design updates",
verifying: "Verifying source and runtime…",
retryWithAgent: "Retry source verification",
copyPrompt: "Copy prompt to your agent",
abortPreview: "Abort preview and interact",
agentMessage: "Apply the pending visual style edits to the source.",
sentToast: "Style edits sent to the Design agent",
verifiedToast: "Source and runtime structure verified",
conflictToast:
"The reloaded runtime did not match the pending structure edit. The preview is still undoable; retry after resolving the source conflict.",
sourceCheckFailedToast:
"Could not verify the connected source files. The preview was kept so you can retry or undo.",
copiedToast: "Style prompt copied",
abortedToast: "Pending preview discarded",
interactBlocked:
"Apply or abort pending live edits before switching to Interact.",
leaveTitle: "Apply styles before leaving?",
leaveDescriptionOne:
"You have {{count}} pending visual style edit in the live preview. Leaving now will discard that unapplied style change.",
leaveDescriptionOther:
"You have {{count}} pending visual style edits in the live preview. Leaving now will discard those unapplied style changes.",
stay: "Stay here",
leave: "Leave without applying",
},
addLocalhostScreen: {
title: "Add a screen from your app",
description: "Pick a route to add as a new frame, or type a path.",
searchPlaceholder: "Search routes…",
noRoutes: "No matching routes",
useCustomPath: 'Add "{{path}}"',
viewportDesktop: "Desktop",
viewportMobile: "Mobile",
added: "Screen added",
addFailed: "Could not add screen",
},
nodeRewrite: {
composerTitle: "Ask or change selection",
send: "Send",
autoHint: "Describe a change or ask a question",
willPreview: "Will preview changes for your approval",
willAsk: "Will ask the agent without changing the design",
modeAuto: "Auto",
modePreview: "Preview change",
modeAsk: "Ask agent",
modeRegenerate: "Regenerate",
agentModeOptions: "Choose agent behavior",
pendingReview: "Review changes · {{count}}",
pendingReviewMenu: "Changes ready to review",
reviewCandidate: "Review change",
regenerate: "Regenerate…",
sending: "Regenerating…",
sent: "Regeneration request sent",
sendFailed: "Could not send the regeneration request",
previewTitle: "Regenerated selection",
variants: "Regeneration variants",
variantNumber: "Variant {{count}}: {{summary}}",
candidatePosition: "{{current}} of {{total}}",
previousCandidate: "Previous candidate",
nextCandidate: "Next candidate",
refinePlaceholder: "Refine this result…",
refine: "Refine result",
refinementSent: "Refinement sent",
refinementFailed: "Could not send the refinement",
accept: "Accept",
reject: "Reject",
resolveFailed: "Could not resolve this proposal",
},
capabilities: {
"deterministic-style-edit": "Safe style edit",
"deterministic-class-edit": "Safe class edit",
"agent-structural-edit": "Agent needed for structural move",
},
toasts: {
annotationSendError:
"Could not send annotations. Your drawing is still here—try again.",
codingHandoffError: "Could not create agent handoff",
codingHandoffCopied: "Agent prompt copied",
clipboardBlocked: "Clipboard blocked",
htmlCreateError: "Could not create HTML download",
htmlDownloaded: "HTML downloaded",
htmlExportError: "Could not export HTML",
zipCreateError: "Could not create ZIP download",
zipDownloaded: "ZIP downloaded",
zipExportError: "Could not export ZIP",
openScreenPng: "Open a screen before exporting PNG",
pngCreateError: "Could not create PNG download",
pngDownloaded: "PNG downloaded",
pngCopied: "PNG copied to clipboard",
pngClipboardUnsupported:
"This browser can't copy PNG images to the clipboard",
pngClipboardBlocked: "Allow clipboard access to copy this PNG",
pngClipboardWriteError: "Could not copy PNG to the clipboard",
pngLivePreviewUnavailable:
"PNG capture isn't available for URL-backed screens yet",
pngReadOnlyUnavailable:
"PNG capture isn't available in read-only previews",
pngSaveError: "Could not save PNG",
pngExportError: "Could not export PNG",
pdfAllScreensDownloaded: "PDF downloaded (all screens)",
openScreenSvg: "Open a screen before exporting SVG",
svgDownloaded: "SVG downloaded",
svgExportError: "Could not export SVG",
figmaSvgCopied: "Copied as Figma SVG",
figmaSvgDownloaded: "Figma SVG downloaded",
figmaSvgUnsupported:
"This browser can't copy SVG images to the clipboard",
figmaSvgBlocked: "Allow clipboard access to copy this SVG",
figmaSvgWriteError: "Could not copy SVG to the clipboard",
figmaSvgRenderError: "Could not create the Figma SVG",
figmaSvgExportError: "Could not export Figma SVG",
screenDuplicated: "Screen duplicated",
screenDuplicateError: "Could not duplicate screen",
copied: "Copied",
pasted: "Pasted",
deleted: "Deleted",
propsCopied: "Properties copied",
propsPasted: "Properties pasted",
primitiveInsertFailed: "Could not add that layer to the screen",
layerMoveFailed: "Could not move that layer",
layerMoveRedirected:
"Moved next to its original spot — the exact drop target isn't editable",
duplicateElementFailed: "Could not duplicate that element",
eyedropperUnsupported: "Eyedropper isn't supported in this browser",
saveCopyError: "Could not save a copy of this design",
auditRunFailed: "Unable to run design audit",
componentCreated: "Component created",
componentCreateFailed: "Could not create component",
tweakConflict:
"Tweaks changed elsewhere. Refresh the design before trying again.",
tweakSaveNotDurable:
"Tweaks aren't saved yet. Keep this tab open and try again.",
undoSkippedConcurrentEdit: "Skipped an undo — someone else moved that",
redoSkippedConcurrentEdit: "Skipped a redo — someone else moved that",
autoLayoutScreensUnsupported: "Add auto layout doesn't apply to screens",
reactSourceAnchorsLoading:
"React source anchors are still loading. Try again once the local app finishes rendering.",
},
},
layersPanel: {
title: "Layers",
screens: "Screens",
allScreens: "All screens",
thumbnail: "Thumbnail",
addScreen: "Add screen",
searchPlaceholder: "Search layers...",
empty: "No layers",
noMatches: "No layers match",
designLayers: "Design layers",
codeLayers: "Code layers",
elementLayers: "Element layers",
collapse: "Collapse layer",
expand: "Expand layer",
lock: "Lock layer",
unlock: "Unlock layer",
hide: "Hide layer",
show: "Show layer",
rename: "Rename layer",
deleteBoardObject: "Delete board object",
copy: "Copy",
pasteHere: "Paste here",
duplicate: "Duplicate",
delete: "Delete",
group: "Group",
ungroup: "Ungroup",
bringForward: "Bring forward",
bringToFront: "Bring to front",
sendBackward: "Send backward",
sendToBack: "Send to back",
pasteToReplace: "Paste to replace",
frameSelection: "Frame selection",
flipHorizontal: "Flip horizontal",
flipVertical: "Flip vertical",
dragGhostCount: "{{count}} layers",
},
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"Live editor bridge did not confirm after several attempts.",
connectionNotConfirmed:
"The live editor bridge did not confirm the connection. Is the local dev server still running?",
},
},
multiScreenCanvas: {
duplicate: "Duplicate",
fork: "Fork",
fullView: "Full view",
preview: "Preview",
openAndDuplicate: "Select {{display}}. Use Interact for focused scrolling.",
openAndPreview: "Select {{display}}. Use Interact for focused scrolling.",
doubleClickToEdit: "Use Interact for focused scrolling",
sources: {
localhost: {
label: "Localhost",
title: "Rendered from a local development server",
},
fusion: {
label: "Fusion",
title: "Rendered from Fusion",
},
inline: {
label: "Inline",
title: "Rendered from inline code",
},
},
previews: {
live: {
label: "Live",
shortLabel: "Live frame",
title: "Live preview",
},
snapshot: {
label: "Snapshot",
shortLabel: "Snapshot",
title: "Static cached snapshot",
},
preview: {
label: "Preview",
shortLabel: "Preview",
title: "Inline preview",
},
},
},
questionFlow: {
defaultTitle: "Shape the design first",
defaultDescription:
"Answer the high-leverage choices. Skip anything the agent should decide.",
answeredCount: "{{answered}} of {{total}} answered",
requiredCount: "{{answered}} of {{total}} required",
multiSelectHelp:
"Multi-select questions can take several chips. Use Other when the exact direction matters.",
ready: "Ready to continue.",
answerRequired: "Answer required cards to continue.",
skip: "Skip",
continue: "Continue",
chooseAny: "Choose any that apply",
chooseOne: "Choose one",
required: "Required",
textPlaceholder: "Type your answer...",
selectedCount: "{{count}} selected. Add or remove chips before continuing.",
selectUseful: "Select as many as are useful.",
other: "Other",
otherDescription: "Tell the agent exactly what you mean.",
customPlaceholder: "Type a custom answer...",
recommended: "Recommended",
dragFiles: "Drag files here or",
browse: "browse",
removeFile: "Remove {{name}}",
exploreLabel: "Explore a few options",
exploreDescription: "Show me distinct directions before committing.",
decideLabel: "Decide for me",
decideDescription: "Use judgment and keep moving.",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Assets image picker",
loadingAssetsPicker: "Loading Assets picker",
assetAdded: "Asset added",
assetsNoImageUrl: "Assets did not return an image URL.",
failedToUploadFile: "Failed to upload file",
failedToSubmitPrompt: "Failed to submit prompt",
skipPrompt: "Skip prompt",
designSystem: "Design system",
noDesignSystem: "No design system",
newDesignSystem: "New",
createDesignSystem: "Create design system",
template: "Template",
blank: "Blank",
builtIn: "Built-in",
chooseTemplate: "Choose a template",
searchTemplates: "Search templates...",
noTemplatesFound: "No templates found.",
yourTemplates: "Your templates",
builtInTemplates: "Built-in templates",
templatePromptPlaceholder: "Describe how to adapt {{title}}...",
reskinTemplatePrompt:
"Apply the {{system}} design system to {{title}} while preserving its structure and locked layers.",
addAttachment: "Add",
removeAttachment: "Remove {{name}}",
uploadFile: "Upload file",
uploadFileDescription: "Images, PDFs, text/code",
pickAsset: "Pick asset",
pickAssetDescription: "Browse or generate images",
},
visualEditor: {
typeAnnotation: "Type annotation...",
typeAnnotationFancy: "Type annotation…",
typeAnywhere: "Type anywhere",
typeAnywhereOnCanvas: "Type anywhere on the canvas",
clearAll: "Clear all",
exitDrawMode: "Exit draw mode",
undoStroke: "Undo stroke",
redoStroke: "Redo stroke",
tellAgentWhatToDo: "Tell the agent what to do…",
clickToDropCommentPin: "Click anywhere to drop a comment pin",
editDesign: "Edit design",
escToExit: "Esc to exit",
tellAgentWhatToChange: "Tell the agent what to change…",
changesSaveWhenReconnected: "Changes will save when reconnected",
changesDiscarded:
"Some changes couldn't be saved because the file no longer exists and were discarded.",
offline: "Offline",
saving: "Saving...",
clearedAllAnnotations: "Cleared all annotations",
annotationsDiscardedOnViewChange:
"{{count}} unsent annotation(s) were discarded when you left this view.",
undo: "Undo",
send: "Send",
sendingDrawing: "Sending…",
commentSent: "Comment sent",
comment: "Comment",
annotationQueue: "Annotation queue",
annotationQueueCounts: "{{queued}} queued · {{sent}} sent",
batchApply: "Batch apply",
queued: "Queued",
queuedStatus: "Queued - {{status}}",
commentSentStatus: "Comment sent - {{status}}",
commentStatus: "Comment - {{status}}",
anchorLabel: "Anchor {{id}}",
nearText: 'near "{{text}}"',
submitShortcut: "{{mod}}+Enter to submit",
queue: "Queue",
pinStatus: {
deterministic: {
label: "Deterministic",
shortLabel: "Direct",
detail:
"Anchored to a layer or selector and likely actionable directly.",
},
"needs-agent": {
label: "Needs agent",
shortLabel: "Agent",
detail: "Needs interpretation, or only has canvas-position context.",
},
conflict: {
label: "Conflict",
shortLabel: "Conflict",
detail: "Possibly overlaps or contradicts another queued comment.",
},
unsupported: {
label: "Unsupported",
shortLabel: "Blocked",
detail: "Likely outside this canvas edit surface.",
},
},
pinStatusCount: {
direct: "Direct {{count}}",
agent: "Agent {{count}}",
conflict: "Conflict {{count}}",
blocked: "Blocked {{count}}",
},
queuedCommentsDiscarded:
"{{count}} unsent comment draft(s) were discarded when you left this view.",
staleAnchorDetail: "Original element no longer found on the canvas.",
},
home: {
pageTitle: "Designs",
searchPlaceholder: "Search designs...",
newDesign: "New Design",
newDesignLower: "New design",
createDesignProject: "Create a design project",
openingDesign: "Opening design...",
skipToEditor: "Skip to editor",
failedToCreateDesign: "Failed to create design",
describeBuild: "Describe what you want to build...",
selected: "{{count}} selected",
clearVisibleSelection: "Clear visible selection",
selectVisibleDesigns: "Select visible designs",
clearSelection: "Clear selection",
delete: "Delete",
selectDesign: "Select {{title}}",
actionsForDesign: "Actions for {{title}}",
rename: "Rename",
duplicate: "Duplicate",
renameDesign: "Rename design",
designName: "Design name",
cancel: "Cancel",
save: "Save",
deleteDesignTitle: "Delete Design?",
deleteDesignsTitle: "Delete {{count}} Designs?",
deleteSingleDesignsTitle: "Delete {{count}} Design?",
deleteDesignDescription:
"This will permanently delete this design and all its files. This action cannot be undone.",
deleteDesignsDescription:
"This will permanently delete these {{count}} designs and all their files. This action cannot be undone.",
untitledDesign: "Untitled Design",
createFirstDesign: "Create your first design",
pickStartingPoint: "Pick a starting point or write your own prompt.",
starterSaas: "SaaS landing page",
starterDashboard: "Dashboard",
starterPricing: "Pricing page",
starterMobile: "Mobile app",
prototype: "Prototype",
other: "Other",
designPreview: "Design preview",
},
visualEdit: {
eyebrow: "Visual edit",
title: "Inspect local app screens before you sign in",
description:
"Open visual-edit without an account. Sign up only when you want to save designs, keep screen layouts, share with others, or generate new directions.",
saveCta: "Save",
openDesign: "Open Design",
templatesCta: "Browse templates",
previewLabel: "Local preview",
layoutLabel: "Screen layout ready to save",
},
templatesPage: {
title: "Templates",
description:
"Start with the right dimensions and defaults, then prompt the unlocked content into place.",
searchPlaceholder: "Search templates...",
starterTemplates: "Built-in templates",
savedTemplates: "Your templates",
savedTemplatesDescription:
"Save any Design project as a reusable template from its editor menu.",
savedEmpty: "Open a design and choose Save as template to add it here.",
yourTemplates: "Your templates",
yourTemplatesDescription:
"Save any Design project as a reusable template from its editor menu.",
yourTemplatesEmpty:
"Open a design and choose Save as template to add it here.",
builtInTemplates: "Built-in templates",
builtIn: "Built-in",
brand: "Brand: {{title}}",
useTemplate: "Use template",
useAsIs: "Use template as-is",
promptPlaceholder: "Describe what you want to make with this template...",
opening: "Opening template...",
createFailed: "Could not create a design from this template",
deleted: "Template deleted",
deleteFailed: "Could not delete this template",
deleteTitle: "Delete template?",
deleteDescription:
"This permanently deletes {{title}}. Designs already created from it are not affected.",
templateActions: "Template actions",
lockedCount: "{{count}} locked",
categories: {
ad: "Ad",
social: "Social",
"one-pager": "One-pager",
"landing-page": "Landing page",
presentation: "Presentation",
other: "Other",
},
socialSquare: "Social square",
formatQuestion: "What format should this {{title}} target?",
formatHeader: "Format",
desktop: "Desktop",
mobile: "Mobile",
tablet: "Tablet",
},
routeTitles: {
notFound: "Not Found - Design",
designSystems: "Design Systems",
designSystemSetup: "Design System Setup",
designEditor: "Design Editor",
designTemplates: "Design Templates",
toolDesign: "Tool — Design",
extensionsDesign: "Extensions — Design",
agentObservability: "Agent Observability",
designPreview: "Design Preview",
settingsDesign: "Settings — Design",
teamDesign: "Team - Design",
visualEdit: "Visual Edit - Design",
},
designSystemSetup: {
importedBrand: "Imported brand",
figmaCreateSuccess: "Design system created from Figma",
figmaCreateError: "Could not create the design system",
backToDesignSystems: "Back to design systems",
continue: "Continue to generation",
title: "Set up your design system",
description:
"Connect Figma, code, and optional design.md guidance through Builder DSI. More context gives the agent a more accurate system.",
figmaParsingTitle: "Starting Builder DSI indexing...",
figmaParsingDescription:
"Builder will extract tokens, components, assets, and usage guidance",
uploadFig: "Connect Figma with a .fig file",
figmaSaveLocalCopy:
"Upload a local copy from Figma: File -> Save local copy",
websiteUrl: "Website-URL",
add: "Add",
githubRepository: "GitHub repository",
privateRepoPrefix: "Private repos need a fine-grained token saved as",
privateRepoSuffix: "with Contents read access.",
localCodeFiles: "Connect code files",
dropCodeFiles: "Drop CSS, Tailwind config, theme files, or design.md here",
codeFilePatterns:
".css, .scss, tailwind.config.*, theme.*, tokens.*, design.md, package.json",
documents: "Documents & presentations",
documentsHelp:
"PPTX, DOCX, PDF, XLSX - brand guides, pitch decks, style docs",
visualReferences: "Screenshots & visual references",
visualReferencesHelp:
"Product screenshots, mood boards, inspiration images",
assets: "Logos, fonts & other assets",
assetsHelp: "SVG logos, .woff2 fonts, brand asset files",
designSystem: "Design system",
designProject: "Design project",
companyPlaceholder:
"e.g. Acme Corp - We build developer tools for modern teams...",
notesPlaceholder:
"e.g. We prefer a dark theme with high contrast. Our brand uses Poppins for headings and DM Sans for body. Keep corners rounded at 12px...",
customInstructionsPlaceholder:
"e.g. Always include a sticky top nav. Prefer editorial pull quotes over hero stats. Never use gradient backgrounds. Logos always go bottom-left...",
designSystemName: "Design system name",
brandNamePlaceholder: "Brand name",
extractedSummary:
"Extracted from {{nodes}} nodes, {{gradients}} gradients, {{images}} images",
previewColors: "Colors",
signatureGradients: "Signature gradients",
previewTypography: "Typography",
headingsLabel: "Headings:",
bodyLabel: "Body:",
brandBrief: "Brand brief",
brandBriefHelp:
"This guides every design generated with this system. Refine it anytime after creating.",
creating: "Creating...",
createDesignSystem: "Create design system",
chooseDifferentFile: "Choose a different file",
figmaThumbnailAlt: "Figma file thumbnail",
errors: {
chooseFig:
"Please choose a .fig file (in Figma: File -> Save local copy).",
parseFig: "Could not start Builder indexing for that Figma file.",
enterWebsite: "Enter a website URL before adding it.",
websiteProtocol: "Website URLs must start with http:// or https://.",
enterGithub: "Enter a GitHub repository URL before adding it.",
githubUrl:
"Use a full GitHub repository URL, like https://github.com/org/repo.",
noSources: "Add at least one source before generating a design system.",
},
sections: {
figma: {
title: "Connect Figma",
description:
"Upload a .fig local copy and Builder DSI will index tokens, components, assets, and guidance into a reusable design system.",
},
company: {
title: "Company / Brand",
description: "Name, description, and website",
},
code: {
title: "Connect Code",
description:
"GitHub repos, local source files, and optional design.md guidance for Builder DSI",
},
designFiles: {
title: "Reference files",
description: "Documents, screenshots, logos, fonts, and brand assets",
},
importExisting: {
title: "Import from existing",
description: "Fork a design system or extract tokens from a project",
},
notes: {
title: "Additional notes",
description: "Design preferences, constraints, brand guidelines",
},
customInstructions: {
title: "Custom instructions",
description:
"Saved with the design system. Re-applied every time the agent uses it to generate a design.",
},
},
colorLabels: {
accent: "Accent",
primary: "Primary",
secondary: "Secondary",
background: "Background",
surface: "Surface",
text: "Text",
muted: "Muted",
},
},
designSystems: {
deleteError: "Could not delete design system",
updateSuccess: "Design system updated",
updateError: "Could not update design system",
bulkDeleteError: "Could not delete selected design systems",
selectedLabel: "selected",
yoursTitle: "Your design systems",
newCardDescription: "Set up your brand",
defaultBadge: "Default",
selectAria: "Select {{title}}",
currentlyDefault: "Currently default",
moreActionsAria: "More actions for {{title}}",
showcase: {
title: "Production-ready starting points",
description:
"Use a source-linked snapshot of an established public design system. Each copy includes real tokens, type scales, spacing, shapes, state guidance, and attribution.",
useTemplate: "Use this system",
adding: "Adding...",
openSource: "Open the {{title}} source documentation",
license: "Source license: {{license}}",
addSuccess: "Design system added",
addError: "Could not add design system",
descriptions: {
material3:
"Google’s baseline light roles, Roboto type scale, 4 dp spacing, and Material shape system.",
carbon:
"IBM’s Carbon v11 White theme, IBM Plex typography, enterprise color roles, and 2/4/8 spacing.",
primer:
"GitHub’s Primer light tokens, Mona Sans, compact developer-tool density, and responsive spacing.",
},
},
actions: {
done: "Done",
select: "Select",
new: "New Design System",
clearAll: "Clear all design systems",
selectAll: "Select all design systems",
clearSelection: "Clear selection",
delete: "Delete",
setDefault: "Set as default",
cancel: "Cancel",
},
deleteDialog: {
title: "Delete Design System?",
description:
"This will permanently delete this design system and unlink it from any designs that use it. This action cannot be undone.",
bulkTitle: "Delete {{count}} Design Systems?",
bulkDescription:
"This will permanently delete {{count}} design systems and unlink them from any designs that use them. This action cannot be undone.",
},
details: {
description:
"Review the saved tokens and update the details agents use when they apply this design system.",
titleLabel: "Title",
descriptionLabel: "Description",
customInstructionsTitle: "Custom instructions",
customInstructionsDescription:
"Durable guidance the agent reuses whenever this system is linked to a design.",
noCustomInstructions: "No custom instructions saved yet.",
useAsStartingPoint: "Use as starting point",
saving: "Saving...",
saveChanges: "Save changes",
},
tokenPreview: {
title: "Token preview",
description:
"A snapshot of the colors, type, spacing, and assets currently stored.",
colors: "Colors",
noColors: "No color tokens saved.",
typography: "Typography",
details: "Details",
spacing: "Spacing",
borders: "Borders",
defaults: "Defaults",
logos: "Logos",
assets: "Assets",
savedCount: "{{count}} saved",
colorLabels: {
primary: "Primary",
secondary: "Secondary",
accent: "Accent",
background: "Background",
surface: "Surface",
text: "Text",
mutedText: "Muted text",
},
typeLabels: {
headingFont: "Heading font",
bodyFont: "Body font",
headingWeight: "Heading weight",
bodyWeight: "Body weight",
},
},
empty: {
title: "Create your first design system",
description:
"Maintain consistent branding across all your designs with shared colors, typography, and assets.",
},
},
};
type Messages = typeof enUS;
type DeepPartial = {
[K in keyof T]?: T[K] extends Record
? DeepPartial
: T[K];
};
type PartialMessages = DeepPartial;
function isRecord(value: unknown): value is Record {
return !!value && typeof value === "object" && !Array.isArray(value);
}
function deepMerge>(
base: T,
overrides: DeepPartial | undefined,
): T {
if (!overrides) return base;
const next = { ...base } as Record;
for (const [key, value] of Object.entries(overrides)) {
const baseValue = next[key];
next[key] =
isRecord(baseValue) && isRecord(value)
? deepMerge(baseValue, value as DeepPartial)
: value;
}
return next as T;
}
function mergeMessages(overrides: PartialMessages): Messages {
return deepMerge(enUS, overrides);
}
function mergeLocalizedMessages(
locale: Exclude,
overrides: PartialMessages,
): Messages {
return attachLocalizedKeyboardShortcuts(
mergeMessages(
mergePartialMessages(overrides, {
creativeContext: creativeContextMessagesByLocale[locale],
}),
),
keyboardShortcutLabels[locale],
keyboardKeyLabels[locale],
);
}
function mergePartialMessages(
...overrides: PartialMessages[]
): PartialMessages {
return overrides.reduce(
(messages, override) => deepMerge(messages, override),
{},
);
}
const designLocaleOverrides = {
"zh-TW": zhTW,
"zh-CN": {
common: {
genericError: "出了点问题",
},
editPanel: {
colorInputLabel: "颜色",
properties: "特性",
pageHelpTitle: "单击画布上的任意元素",
pageHelpDescription:
"编辑您选择的任何版式、间距、大小、边框和填充。页面默认如下。",
sections: {
page: "页",
typography: "版式",
flexLayout: "弹性布局",
layout: "布局",
spacing: "间距",
border: "边界",
fill: "充满",
},
labels: {
background: "背景",
font: "字体",
baseSize: "底座尺寸",
size: "尺寸",
weight: "重量",
color: "颜色",
align: "对齐",
lineHeight: "行高",
tracking: "追踪",
direction: "方向",
justify: "证明合法",
gap: "差距",
width: "宽度",
height: "高度",
opacity: "不透明度",
padding: "填充",
margin: "利润",
radius: "半径",
rotation: "旋转",
flipHorizontal: "水平翻转",
flipVertical: "垂直翻转",
},
sidePlaceholders: {
top: "时间",
right: "右",
bottom: "乙",
left: "L",
},
fontFamilies: {
inherit: "继承",
sansSerif: "无衬线字体",
serif: "衬线",
monospace: "等宽字体",
inter: "Inter 字体",
poppins: "Poppins 字体",
playfairDisplay: "Playfair Display 字体",
jetBrainsMono: "JetBrains Mono 字体",
},
fontWeights: {
thin: "薄的",
extraLight: "超轻",
light: "光",
regular: "常规的",
medium: "中等的",
semiBold: "半粗体",
bold: "大胆的",
extraBold: "额外大胆",
black: "黑色的",
},
textAligns: {
left: "左边",
center: "中心",
right: "正确的",
justify: "证明合法",
},
textDecorations: {
underline: "下划线",
strikethrough: "删除线",
},
textCases: {
none: "无",
uppercase: "大写",
lowercase: "小写",
capitalize: "首字母大写",
},
typographyDetails: {
basicsTab: "基础",
detailsTab: "详细信息",
decorationLabel: "装饰",
caseLabel: "大小写",
},
flexDirections: {
row: "排",
column: "柱子",
rowReverse: "行反转",
columnReverse: "列反转",
},
justifyOptions: {
start: "开始",
center: "中心",
end: "结尾",
between: "之间",
around: "大约",
evenly: "均匀地",
},
alignOptions: {
start: "开始",
center: "中心",
end: "结尾",
stretch: "拉紧",
baseline: "基线",
},
},
designEditor: {
generationMayHaveStopped:
"创建文件之前生成可能已停止。检查代理消息或重试。",
generationMayHaveStoppedToast: "创建文件之前生成可能已停止。",
generationStoppedRetry:
"创建文件之前生成停止。再次尝试从相同的提示继续。",
generationStoppedCheckAgent: "创建文件之前生成停止。检查代理消息或重试。",
notFound: "未找到设计",
backToDesigns: "返回设计",
clickToRename: "点击重命名",
modes: {
annotate: "批注",
comment: "评论",
edit: "编辑",
draw: "画",
interact: "Interact",
screens: "屏幕",
},
undo: "撤消",
undoShortcut: "撤消 (⌘Z)",
redo: "重做",
redoShortcut: "重做 (⇧⌘Z)",
returnToCurrentScreen: "返回当前屏幕",
openScreenOverview: "打开屏幕概览",
currentScreen: "当前屏幕",
screenOverview: "屏幕概览",
devicePreview: "设备预览",
devices: {
responsive: "反应灵敏",
desktop: "桌面",
tablet: "药片",
mobile: "移动的",
},
zoom: "飞涨",
zoomOut: "缩小",
zoomIn: "放大",
more: "更多的",
stopPinningComments: "停止固定评论",
pinComment: "发表评论",
export: "出口",
downloadHtml: "下载 HTML",
downloadPng: "下载 PNG",
downloadSvg: "下载 SVG",
downloadFigmaSvg: "下载用于 Figma 的 SVG",
downloadZip: "下载 ZIP",
downloadPdfAllScreens: "下载 PDF(所有屏幕)",
copyCodingHandoff: "复制编码交接",
pickDirection: "选择一个方向",
variations: "{{count}} 变体",
close: "关闭",
generating: "生成设计...",
noFiles: "还没有文件。要求代理生成设计。",
tryAgain: "再试一次",
newPrompt: "新提示",
generateDesign: "生成设计",
hideTweaks: "隐藏调整",
showTweaks: "显示调整",
tweaks: "调整",
generatePlaceholder: "描述您想要构建的内容...",
tweaksPromptTitle: "您想要什么调整?",
tweaksPlaceholder: "强调选项、密度、半径、深色模式...",
designExport: "设计导出",
toasts: {
tweakConflict: "调整已在其他位置更改。请刷新设计后再试。",
tweakSaveNotDurable: "调整尚未保存。请保持此标签页打开并重试。",
codingHandoffError: "无法创建编码切换",
codingHandoffCopied: "复制编码交接",
clipboardBlocked: "剪贴板被阻止",
htmlCreateError: "无法创建 HTML 下载",
htmlDownloaded: "HTML 下载",
htmlExportError: "无法导出 HTML",
zipCreateError: "无法创建 ZIP 下载",
zipDownloaded: "ZIP 下载",
zipExportError: "无法导出 ZIP",
openScreenPng: "导出 PNG 之前打开一个屏幕",
pngCreateError: "无法创建 PNG 下载",
pngDownloaded: "PNG 下载",
pngSaveError: "无法保存 PNG",
pngExportError: "无法导出 PNG",
pdfAllScreensDownloaded: "PDF 下载(所有屏幕)",
openScreenSvg: "导出 SVG 之前打开一个屏幕",
svgDownloaded: "SVG 下载",
svgExportError: "无法导出 SVG",
undoSkippedConcurrentEdit: "已跳过撤消 — 其他人移动了该内容",
redoSkippedConcurrentEdit: "已跳过重做 — 其他人移动了该内容",
},
},
designSystemSetup: {
importedBrand: "进口品牌",
figmaCreateSuccess: "由Figma创建的设计系统",
figmaCreateError: "无法创建设计系统",
backToDesignSystems: "返回设计系统",
continue: "继续生成",
title: "设置您的设计系统",
description:
"通过 Builder DSI 连接 Figma、代码和可选的 design.md 指引。上下文越多,代理得到的系统越准确。",
figmaParsingTitle: "正在启动 Builder DSI 索引...",
figmaParsingDescription: "Builder 会提取令牌、组件、资产和使用指引",
uploadFig: "连接 Figma .fig 文件",
figmaSaveLocalCopy: "上传 Figma 本地副本:File -> Save local copy",
websiteUrl: "网站URL",
add: "添加",
githubRepository: "GitHub 存储库",
privateRepoPrefix: "私人仓库需要一个细粒度的令牌,另存为",
privateRepoSuffix: "具有内容读取权限。",
localCodeFiles: "连接代码文件",
dropCodeFiles: "将 CSS、Tailwind 配置、主题文件或 design.md 拖放到此处",
documents: "文件和演示文稿",
documentsHelp: "PPTX、DOCX、PDF、XLSX - 品牌指南、推介材料、风格文档",
visualReferences: "屏幕截图和视觉参考",
visualReferencesHelp: "产品屏幕截图、情绪板、灵感图片",
assets: "徽标、字体和其他资产",
assetsHelp: "SVG 徽标、.woff2 字体、品牌资产文件",
designSystem: "设计体系",
designProject: "设计项目",
companyPlaceholder:
"例如Acme Corp - 我们为现代团队构建开发人员工具......",
notesPlaceholder:
"例如我们更喜欢高对比度的深色主题。我们的品牌使用 Poppins 作为标题,使用 DM Sans 作为正文。保持圆角为 12px...",
customInstructionsPlaceholder:
"例如始终包含一个粘性顶部导航。更喜欢社论引用而不是英雄统计数据。切勿使用渐变背景。徽标始终位于左下角...",
designSystemName: "设计系统名称",
brandNamePlaceholder: "品牌名称",
extractedSummary:
"从 {{nodes}} 节点、{{gradients}} 梯度、{{images}} 图像中提取",
previewColors: "颜色",
signatureGradients: "签名渐变",
previewTypography: "版式",
headingsLabel: "标题:",
bodyLabel: "身体:",
brandBrief: "品牌简介",
brandBriefHelp: "这指导了该系统生成的每个设计。创建后随时进行完善。",
creating: "创造...",
createDesignSystem: "创建设计系统",
chooseDifferentFile: "选择不同的文件",
figmaThumbnailAlt: "Figma 文件缩略图",
errors: {
chooseFig: "请选择一个.fig 文件(在 Figma 中:文件 -> 保存本地副本)。",
parseFig: "无法为该 Figma 文件启动 Builder 索引。",
enterWebsite: "添加前输入网站 URL。",
websiteProtocol: "网站 URLs 必须以 http:// 或 https:// 开头。",
enterGithub: "在添加之前输入 GitHub 存储库 URL。",
githubUrl:
"使用完整的 GitHub 存储库 URL,例如 https://github.com/org/repo。",
noSources: "在生成设计系统之前至少添加一个源。",
},
sections: {
figma: {
title: "连接 Figma",
description:
"上传 .fig,Builder DSI 会将令牌、组件、资产和品牌指引索引成可重用的设计系统。",
},
company: {
title: "公司/品牌",
description: "名称、描述和网站",
},
code: {
title: "连接代码",
description:
"GitHub 存储库、本地代码文件或 design.md 会交给 Builder DSI 索引。",
},
designFiles: {
title: "参考文件",
description: "文档、截图和品牌资产会补充 Builder DSI 的索引上下文",
},
importExisting: {
title: "从现有的导入",
description: "分叉设计系统或从项目中提取代币",
},
notes: {
title: "附加说明",
description: "设计偏好、限制、品牌指南",
},
customInstructions: {
title: "定制说明",
description:
"与设计系统一起保存。每次代理使用它来生成设计时都会重新应用。",
},
},
colorLabels: {
accent: "口音",
primary: "基本的",
secondary: "中学",
background: "背景",
surface: "表面",
text: "文本",
muted: "静音",
},
},
designSystems: {
deleteError: "无法删除设计系统",
updateSuccess: "设计系统更新",
updateError: "无法更新设计系统",
bulkDeleteError: "无法删除选定的设计系统",
selectedLabel: "已选择",
yoursTitle: "您的设计系统",
newCardDescription: "建立您的品牌",
defaultBadge: "默认",
selectAria: "选择{{title}}",
currentlyDefault: "目前默认",
moreActionsAria: "{{title}} 的更多操作",
showcase: {
title: "可用于生产的起点",
description:
"使用成熟公共设计系统的来源链接快照。每个副本都包含真实令牌、字号、间距、形状、状态指南和署名。",
useTemplate: "使用此系统",
adding: "正在添加...",
openSource: "打开 {{title}} 来源文档",
license: "源许可证:{{license}}",
addSuccess: "已添加设计系统",
addError: "无法添加设计系统",
descriptions: {
material3:
"Google 的基准浅色角色、Roboto 字号、4 dp 间距和 Material 形状系统。",
carbon:
"IBM Carbon v11 White 主题、IBM Plex 排版、企业色彩角色和 2/4/8 间距。",
primer:
"GitHub Primer 浅色令牌、Mona Sans、紧凑的开发者工具密度和响应式间距。",
},
},
actions: {
done: "完毕",
select: "选择",
new: "新设计系统",
clearAll: "清除所有设计系统",
selectAll: "选择所有设计系统",
clearSelection: "清除选择",
delete: "删除",
setDefault: "设置为默认值",
cancel: "取消",
},
deleteDialog: {
title: "删除设计系统?",
description:
"这将永久删除该设计系统,并取消它与任何使用它的设计的链接。此操作无法撤消。",
bulkTitle: "删除 {{count}} 设计系统?",
bulkDescription:
"这将永久删除 {{count}} 设计系统,并取消它们与使用它们的任何设计的链接。此操作无法撤消。",
},
details: {
description:
"查看保存的令牌并更新代理在应用此设计系统时使用的详细信息。",
titleLabel: "标题",
descriptionLabel: "描述",
customInstructionsTitle: "定制说明",
customInstructionsDescription:
"每当该系统链接到设计时,代理就会重复使用持久的指导。",
noCustomInstructions: "尚未保存自定义指令。",
useAsStartingPoint: "用作起点",
saving: "保存...",
saveChanges: "保存更改",
},
tokenPreview: {
title: "代币预览",
description: "当前存储的颜色、类型、间距和资源的快照。",
colors: "颜色",
noColors: "没有保存颜色标记。",
typography: "版式",
details: "细节",
spacing: "间距",
borders: "边框",
defaults: "默认值",
logos: "标志",
assets: "资产",
savedCount: "已保存 {{count}} 个",
colorLabels: {
primary: "基本的",
secondary: "中学",
accent: "口音",
background: "背景",
surface: "表面",
text: "文本",
mutedText: "静音文本",
},
typeLabels: {
headingFont: "标题字体",
bodyFont: "正文字体",
headingWeight: "标题重量",
bodyWeight: "体重",
},
},
empty: {
title: "创建您的第一个设计系统",
description: "通过共享颜色、版式和资源在所有设计中保持一致的品牌。",
},
},
},
"es-ES": {
common: {
genericError: "algo salió mal",
},
editPanel: {
colorInputLabel: "color",
properties: "Propiedades",
pageHelpTitle: "Haga clic en cualquier elemento del lienzo.",
pageHelpDescription:
"Edite tipografía, espaciado, tamaño, bordes y rellene lo que seleccione. Valores predeterminados de página a continuación.",
sections: {
page: "Página",
typography: "Tipografía",
flexLayout: "Diseño flexible",
layout: "Disposición",
spacing: "Espaciado",
border: "Borde",
fill: "Llenar",
},
labels: {
background: "Fondo",
font: "Fuente",
baseSize: "Tamaño básico",
size: "Tamaño",
weight: "Peso",
color: "Color",
align: "Alinear",
lineHeight: "Altura de línea",
tracking: "Seguimiento",
direction: "Dirección",
justify: "Justificar",
gap: "Brecha",
width: "Ancho",
height: "Altura",
opacity: "Opacidad",
padding: "Relleno",
margin: "Margen",
radius: "Radio",
rotation: "Rotación",
flipHorizontal: "Voltear horizontal",
flipVertical: "Voltear vertical",
},
sidePlaceholders: {
top: "t",
right: "R",
bottom: "B",
left: "l",
},
fontFamilies: {
inherit: "Heredar",
sansSerif: "Sin serifa",
serif: "Serifa",
monospace: "monoespacio",
inter: "Fuente Inter",
poppins: "Fuente Poppins",
playfairDisplay: "Fuente Playfair Display",
jetBrainsMono: "Fuente JetBrains Mono",
},
fontWeights: {
thin: "Delgado",
extraLight: "Luz adicional",
light: "Luz",
regular: "Regular",
medium: "Medio",
semiBold: "Semi negrita",
bold: "Atrevido",
extraBold: "Extra negrita",
black: "Negro",
},
textAligns: {
left: "Izquierda",
center: "Centro",
right: "Bien",
justify: "Justificar",
},
textDecorations: {
underline: "Subrayado",
strikethrough: "Tachado",
},
textCases: {
none: "Ninguno",
uppercase: "Mayúsculas",
lowercase: "Minúsculas",
capitalize: "Capitalizar",
},
typographyDetails: {
basicsTab: "Básicos",
detailsTab: "Detalles",
decorationLabel: "Decoración",
caseLabel: "Mayúsculas y minúsculas",
},
flexDirections: {
row: "Fila",
column: "Columna",
rowReverse: "Fila inversa",
columnReverse: "Columna inversa",
},
justifyOptions: {
start: "Comenzar",
center: "Centro",
end: "Fin",
between: "Entre",
around: "Alrededor",
evenly: "Igualmente",
},
alignOptions: {
start: "Comenzar",
center: "Centro",
end: "Fin",
stretch: "Estirar",
baseline: "Base",
},
},
designEditor: {
generationMayHaveStopped:
"Es posible que la generación se haya detenido antes de crear archivos. Verifique el mensaje del agente o inténtelo nuevamente.",
generationMayHaveStoppedToast:
"Es posible que la generación se haya detenido antes de crear archivos.",
generationStoppedRetry:
"La generación se detuvo antes de crear archivos. Intente nuevamente continuar desde el mismo mensaje.",
generationStoppedCheckAgent:
"La generación se detuvo antes de crear archivos. Verifique el mensaje del agente o inténtelo nuevamente.",
notFound: "Diseño no encontrado",
backToDesigns: "Volver a diseños",
clickToRename: "Haga clic para cambiar el nombre",
modes: {
annotate: "Anotar",
comment: "Comentario",
edit: "Editar",
draw: "Dibujar",
interact: "Interact",
screens: "Pantallas",
},
undo: "Deshacer",
undoShortcut: "Deshacer (⌘Z)",
redo: "Rehacer",
redoShortcut: "Rehacer (⇧⌘Z)",
returnToCurrentScreen: "Volver a la pantalla actual",
openScreenOverview: "Descripción general de la pantalla abierta",
currentScreen: "Pantalla actual",
screenOverview: "Descripción general de la pantalla",
devicePreview: "Vista previa del dispositivo",
devices: {
responsive: "Sensible",
desktop: "De oficina",
tablet: "Tableta",
mobile: "Móvil",
},
zoom: "Zoom",
zoomOut: "alejar",
zoomIn: "Dar un golpe de zoom",
more: "Más",
stopPinningComments: "Deja de fijar comentarios",
pinComment: "Fijar comentario",
export: "Exportar",
downloadHtml: "Descargar HTML",
downloadPng: "Descargar PNG",
downloadSvg: "Descargar SVG",
downloadZip: "Descargar ZIP",
downloadPdfAllScreens: "Descargar PDF (todas las pantallas)",
copyCodingHandoff: "Copiar transferencia de codificación",
pickDirection: "Elige una dirección",
variations: "variaciones {{count}}",
close: "Cerca",
generating: "Generando diseño...",
noFiles: "Aún no hay archivos. Pídale al agente que genere un diseño.",
tryAgain: "Intentar otra vez",
newPrompt: "Nuevo mensaje",
generateDesign: "generar diseño",
hideTweaks: "Ocultar ajustes",
showTweaks: "Mostrar ajustes",
tweaks: "Ajustes",
generatePlaceholder: "Describe lo que quieres construir...",
tweaksPromptTitle: "¿Qué ajustes quieres?",
tweaksPlaceholder: "Opciones de acento, densidad, radio, modo oscuro...",
designExport: "Exportación de diseño",
toasts: {
tweakConflict:
"Los ajustes cambiaron en otro lugar. Actualiza el diseño antes de volver a intentarlo.",
tweakSaveNotDurable:
"Los ajustes aún no se han guardado. Mantén esta pestaña abierta y vuelve a intentarlo.",
codingHandoffError: "No se pudo crear la transferencia de codificación",
codingHandoffCopied: "Transferencia de codificación copiada",
clipboardBlocked: "Portapapeles bloqueado",
htmlCreateError: "No se pudo crear la descarga de HTML",
htmlDownloaded: "HTML descargado",
htmlExportError: "No se pudo exportar HTML",
zipCreateError: "No se pudo crear la descarga de ZIP",
zipDownloaded: "ZIP descargado",
zipExportError: "No se pudo exportar ZIP",
openScreenPng: "Abra una pantalla antes de exportar PNG",
pngCreateError: "No se pudo crear la descarga de PNG",
pngDownloaded: "PNG descargado",
pngSaveError: "No se pudo guardar PNG",
pngExportError: "No se pudo exportar PNG",
pdfAllScreensDownloaded: "PDF descargado (todas las pantallas)",
openScreenSvg: "Abra una pantalla antes de exportar SVG",
svgDownloaded: "SVG descargado",
svgExportError: "No se pudo exportar SVG",
undoSkippedConcurrentEdit: "Se omitió deshacer: otra persona movió eso",
redoSkippedConcurrentEdit: "Se omitió rehacer: otra persona movió eso",
},
},
designSystemSetup: {
importedBrand: "Marca importada",
figmaCreateSuccess: "Sistema de diseño creado a partir de Figma.",
figmaCreateError: "No se pudo crear el sistema de diseño.",
backToDesignSystems: "Volver a sistemas de diseño",
continue: "continuar con la generación",
title: "Configure su sistema de diseño",
description:
"Conecta Figma, código y guía opcional de design.md mediante Builder DSI. Más contexto le da al agente un sistema más preciso.",
figmaParsingTitle: "Iniciando indexación de Builder DSI...",
figmaParsingDescription:
"Builder extraerá tokens, componentes, recursos y guía de uso.",
uploadFig: "Conectar Figma con un archivo .fig",
figmaSaveLocalCopy:
"Sube una copia local de Figma: File -> Save local copy",
websiteUrl: "Sitio web URL",
add: "Agregar",
githubRepository: "repositorio GitHub",
privateRepoPrefix:
"Los repositorios privados necesitan un token detallado guardado como",
privateRepoSuffix: "con acceso de lectura de contenidos.",
localCodeFiles: "Conectar archivos de código",
dropCodeFiles:
"Suelta aquí CSS, configuración de Tailwind, archivos de tema o design.md",
documents: "Documentos y presentaciones",
documentsHelp:
"PPTX, DOCX, PDF, XLSX: guías de marca, presentaciones, documentos de estilo",
visualReferences: "Capturas de pantalla y referencias visuales",
visualReferencesHelp:
"Capturas de pantalla de productos, paneles de estado de ánimo, imágenes de inspiración",
assets: "Logotipos, fuentes y otros recursos",
assetsHelp: "Logotipos SVG, fuentes.woff2, archivos de activos de marca",
designSystem: "Sistema de diseño",
designProject: "Proyecto de diseño",
companyPlaceholder:
"p.ej. Acme Corp: creamos herramientas de desarrollo para equipos modernos...",
notesPlaceholder:
"p.ej. Preferimos un tema oscuro con alto contraste. Nuestra marca utiliza Poppins para los títulos y DM Sans para el cuerpo. Mantenga las esquinas redondeadas a 12px...",
customInstructionsPlaceholder:
"p.ej. Incluya siempre un navegador superior adhesivo. Prefiere citas editoriales a estadísticas de héroes. Nunca utilices fondos degradados. Los logos siempre van abajo a la izquierda...",
designSystemName: "Nombre del sistema de diseño",
brandNamePlaceholder: "Nombre de marca",
extractedSummary:
"Extraído de nodos {{nodes}}, gradientes {{gradients}}, imágenes {{images}}",
previewColors: "Bandera",
signatureGradients: "Degradados característicos",
previewTypography: "Tipografía",
headingsLabel: "Encabezados:",
bodyLabel: "Cuerpo:",
brandBrief: "Resumen de marca",
brandBriefHelp:
"Esto guía cada diseño generado con este sistema. Refinelo en cualquier momento después de crearlo.",
creating: "Creando...",
createDesignSystem: "Crear sistema de diseño",
chooseDifferentFile: "Elija un archivo diferente",
figmaThumbnailAlt: "Miniatura del archivo Figma",
errors: {
chooseFig:
"Elija un archivo.fig (en Figma: Archivo -> Guardar copia local).",
parseFig:
"No se pudo iniciar la indexación de Builder para ese archivo Figma.",
enterWebsite: "Ingrese un sitio web URL antes de agregarlo.",
websiteProtocol:
"El sitio web URLs debe comenzar con http:// o https://.",
enterGithub: "Ingrese un repositorio GitHub URL antes de agregarlo.",
githubUrl:
"Utilice un repositorio GitHub completo URL, como https://github.com/org/repo.",
noSources:
"Agregue al menos una fuente antes de generar un sistema de diseño.",
},
sections: {
figma: {
title: "Conectar Figma",
description:
"Sube un .fig y Builder DSI indexará tokens, componentes, recursos y guía de marca en un sistema de diseño reutilizable.",
},
company: {
title: "Empresa / Marca",
description: "Nombre, descripción y sitio web.",
},
code: {
title: "Conectar código",
description:
"Repositorios de GitHub, archivos de código locales o design.md se indexan con Builder DSI.",
},
designFiles: {
title: "Archivos de referencia",
description:
"Documentos, capturas de pantalla y recursos de marca complementan el contexto de Builder DSI.",
},
importExisting: {
title: "Importar desde existente",
description:
"Bifurcar un sistema de diseño o extraer tokens de un proyecto",
},
notes: {
title: "Notas adicionales",
description:
"Preferencias de diseño, limitaciones, directrices de marca.",
},
customInstructions: {
title: "Instrucciones personalizadas",
description:
"Guardado con el sistema de diseño. Se vuelve a aplicar cada vez que el agente lo utiliza para generar un diseño.",
},
},
colorLabels: {
accent: "Acento",
primary: "Primario",
secondary: "Secundario",
background: "Fondo",
surface: "Superficie",
text: "Texto",
muted: "Apagado",
},
},
designSystems: {
deleteError: "No se pudo eliminar el sistema de diseño",
updateSuccess: "Sistema de diseño actualizado.",
updateError: "No se pudo actualizar el sistema de diseño",
bulkDeleteError:
"No se pudieron eliminar los sistemas de diseño seleccionados",
selectedLabel: "seleccionado",
yoursTitle: "Tus sistemas de diseño",
newCardDescription: "Configura tu marca",
defaultBadge: "Por defecto",
selectAria: "Seleccione {{title}}",
currentlyDefault: "Actualmente predeterminado",
moreActionsAria: "Otras acciones para {{title}}",
showcase: {
title: "Puntos de partida listos para producción",
description:
"Usa una copia con fuentes enlazadas de un sistema de diseño público consolidado. Cada copia incluye tokens, escalas tipográficas, espaciado, formas, estados y atribución reales.",
useTemplate: "Usar este sistema",
adding: "Añadiendo...",
openSource: "Abrir la documentación fuente de {{title}}",
license: "Licencia de origen: {{license}}",
addSuccess: "Sistema de diseño añadido",
addError: "No se pudo añadir el sistema de diseño",
descriptions: {
material3:
"Roles claros base de Google, escala Roboto, espaciado de 4 dp y sistema de formas Material.",
carbon:
"Tema White de IBM Carbon v11, tipografía IBM Plex, roles de color empresariales y espaciado 2/4/8.",
primer:
"Tokens claros de GitHub Primer, Mona Sans, densidad compacta para herramientas y espaciado adaptable.",
},
},
actions: {
done: "Hecho",
select: "Seleccionar",
new: "Nuevo sistema de diseño",
clearAll: "Limpiar todos los sistemas de diseño",
selectAll: "Seleccionar todos los sistemas de diseño",
clearSelection: "Borrar selección",
delete: "Borrar",
setDefault: "Establecer como predeterminado",
cancel: "Cancelar",
},
deleteDialog: {
title: "¿Eliminar sistema de diseño?",
description:
"Esto eliminará permanentemente este sistema de diseño y lo desvinculará de cualquier diseño que lo utilice. Esta acción no se puede deshacer.",
bulkTitle: "¿Eliminar sistemas de diseño {{count}}?",
bulkDescription:
"Esto eliminará permanentemente los sistemas de diseño {{count}} y los desvinculará de cualquier diseño que los utilice. Esta acción no se puede deshacer.",
},
details: {
description:
"Revise los tokens guardados y actualice los detalles que utilizan los agentes cuando aplican este sistema de diseño.",
titleLabel: "Título",
descriptionLabel: "Descripción",
customInstructionsTitle: "Instrucciones personalizadas",
customInstructionsDescription:
"Guía duradera que el agente reutiliza cada vez que este sistema está vinculado a un diseño.",
noCustomInstructions:
"Aún no se han guardado instrucciones personalizadas.",
useAsStartingPoint: "Usar como punto de partida",
saving: "Ahorro...",
saveChanges: "Guardar cambios",
},
tokenPreview: {
title: "Vista previa del token",
description:
"Una instantánea de los colores, tipos, espacios y recursos almacenados actualmente.",
colors: "Bandera",
noColors: "No se guardaron fichas de color.",
typography: "Tipografía",
details: "Detalles",
spacing: "Espaciado",
borders: "Fronteras",
defaults: "Valores predeterminados",
logos: "Logotipos",
assets: "Activos",
savedCount: "{{count}} guardado",
colorLabels: {
primary: "Primario",
secondary: "Secundario",
accent: "Acento",
background: "Fondo",
surface: "Superficie",
text: "Texto",
mutedText: "Texto silenciado",
},
typeLabels: {
headingFont: "fuente de encabezado",
bodyFont: "fuente del cuerpo",
headingWeight: "Peso del rumbo",
bodyWeight: "peso corporal",
},
},
empty: {
title: "Crea tu primer sistema de diseño",
description:
"Mantenga una marca consistente en todos sus diseños con colores, tipografía y recursos compartidos.",
},
},
},
"fr-FR": {
common: {
genericError: "Quelque chose s'est mal passé",
},
editPanel: {
colorInputLabel: "couleur",
properties: "Propriétés",
pageHelpTitle: "Cliquez sur n'importe quel élément du canevas",
pageHelpDescription:
"Modifiez la typographie, l'espacement, le dimensionnement, les bordures et remplissez ce que vous sélectionnez. Valeurs par défaut de la page ci-dessous.",
sections: {
page: "Page",
typography: "Typographie",
flexLayout: "Disposition flexible",
layout: "Mise en page",
spacing: "Espacement",
border: "Frontière",
fill: "Remplir",
},
labels: {
background: "Arrière-plan",
font: "Fonte",
baseSize: "Taille du socle",
size: "Taille",
weight: "Poids",
color: "Couleur",
align: "Aligner",
lineHeight: "Hauteur de ligne",
tracking: "Suivi",
direction: "Direction",
justify: "Justifier",
gap: "Écart",
width: "Largeur",
height: "Hauteur",
opacity: "Opacité",
padding: "Rembourrage",
margin: "Marge",
radius: "Rayon",
rotation: "Rotation",
flipHorizontal: "Retourner horizontalement",
flipVertical: "Retourner verticalement",
},
sidePlaceholders: {
top: "T",
right: "R.",
bottom: "B",
left: "L",
},
fontFamilies: {
inherit: "Hériter",
sansSerif: "Sans empattements",
serif: "Serif",
monospace: "Monospace",
inter: "Police Inter",
poppins: "Police Poppins",
playfairDisplay: "Police Playfair Display",
jetBrainsMono: "Police JetBrains Mono",
},
fontWeights: {
thin: "Mince",
extraLight: "Lumière supplémentaire",
light: "Lumière",
regular: "Régulier",
medium: "Moyen",
semiBold: "Semi-gras",
bold: "Audacieux",
extraBold: "Extra audacieux",
black: "Noir",
},
textAligns: {
left: "Gauche",
center: "Centre",
right: "Droite",
justify: "Justifier",
},
textDecorations: {
underline: "Souligné",
strikethrough: "Barré",
},
textCases: {
none: "Aucun",
uppercase: "Majuscules",
lowercase: "Minuscules",
capitalize: "Première lettre en majuscule",
},
typographyDetails: {
basicsTab: "Bases",
detailsTab: "Détails",
decorationLabel: "Décoration",
caseLabel: "Casse",
},
flexDirections: {
row: "Rangée",
column: "Colonne",
rowReverse: "Rangée inversée",
columnReverse: "Colonne inversée",
},
justifyOptions: {
start: "Commencer",
center: "Centre",
end: "Fin",
between: "Entre",
around: "Autour",
evenly: "Uniformément",
},
alignOptions: {
start: "Commencer",
center: "Centre",
end: "Fin",
stretch: "Extensible",
baseline: "Référence",
},
},
designEditor: {
generationMayHaveStopped:
"La génération s'est peut-être arrêtée avant la création des fichiers. Vérifiez le message de l'agent ou réessayez.",
generationMayHaveStoppedToast:
"La génération s'est peut-être arrêtée avant la création des fichiers.",
generationStoppedRetry:
"La génération s'est arrêtée avant de créer les fichiers. Essayez à nouveau de continuer à partir de la même invite.",
generationStoppedCheckAgent:
"La génération s'est arrêtée avant de créer les fichiers. Vérifiez le message de l'agent ou réessayez.",
notFound: "Conception introuvable",
backToDesigns: "Retour aux créations",
clickToRename: "Cliquez pour renommer",
modes: {
annotate: "Annoter",
comment: "Commentaire",
edit: "Modifier",
draw: "Dessiner",
interact: "Interact",
screens: "Écrans",
},
undo: "Défaire",
undoShortcut: "Annuler (⌘Z)",
redo: "Refaire",
redoShortcut: "Refaire (⇧⌘Z)",
returnToCurrentScreen: "Revenir à l'écran actuel",
openScreenOverview: "Aperçu de l'écran ouvert",
currentScreen: "Écran actuel",
screenOverview: "Aperçu de l'écran",
devicePreview: "Aperçu de l'appareil",
devices: {
responsive: "Sensible",
desktop: "Bureau",
tablet: "Comprimé",
mobile: "Mobile",
},
zoom: "Zoom",
zoomOut: "Zoom arrière",
zoomIn: "Zoomer",
more: "Plus",
stopPinningComments: "Arrêtez d'épingler des commentaires",
pinComment: "Épingler le commentaire",
export: "Exporter",
downloadHtml: "Télécharger HTML",
downloadPng: "Télécharger PNG",
downloadSvg: "Télécharger SVG",
downloadZip: "Télécharger ZIP",
downloadPdfAllScreens: "Télécharger PDF (tous les écrans)",
copyCodingHandoff: "Copie du transfert du codage",
pickDirection: "Choisissez une direction",
variations: "variantes de {{count}}",
close: "Fermer",
generating: "Génération de conception...",
noFiles:
"Aucun fichier pour l'instant. Demandez à l'agent de générer un design.",
tryAgain: "Essayer à nouveau",
newPrompt: "Nouvelle invite",
generateDesign: "Générer un design",
hideTweaks: "Masquer les ajustements",
showTweaks: "Afficher les ajustements",
tweaks: "Ajustements",
generatePlaceholder: "Décrivez ce que vous souhaitez construire...",
tweaksPromptTitle: "Quelles modifications souhaitez-vous?",
tweaksPlaceholder:
"Options d'accentuation, densité, rayon, mode sombre...",
designExport: "Exportation de conception",
toasts: {
tweakConflict:
"Les réglages ont été modifiés ailleurs. Actualisez le design avant de réessayer.",
tweakSaveNotDurable:
"Les réglages ne sont pas encore enregistrés. Gardez cet onglet ouvert et réessayez.",
codingHandoffError: "Impossible de créer un transfert de codage",
codingHandoffCopied: "Transfert de codage copié",
clipboardBlocked: "Presse-papiers bloqué",
htmlCreateError: "Impossible de créer le téléchargement HTML",
htmlDownloaded: "HTML téléchargé",
htmlExportError: "Impossible d'exporter HTML",
zipCreateError: "Impossible de créer le téléchargement ZIP",
zipDownloaded: "ZIP téléchargé",
zipExportError: "Impossible d'exporter ZIP",
openScreenPng: "Ouvrir un écran avant d'exporter PNG",
pngCreateError: "Impossible de créer le téléchargement PNG",
pngDownloaded: "PNG téléchargé",
pngSaveError: "Impossible d'enregistrer PNG",
pngExportError: "Impossible d'exporter PNG",
pdfAllScreensDownloaded: "PDF téléchargé (tous les écrans)",
openScreenSvg: "Ouvrir un écran avant d'exporter SVG",
svgDownloaded: "SVG téléchargé",
svgExportError: "Impossible d'exporter SVG",
undoSkippedConcurrentEdit:
"Annulation ignorée : quelqu'un d'autre a déplacé cet élément",
redoSkippedConcurrentEdit:
"Rétablissement ignoré : quelqu'un d'autre a déplacé cet élément",
},
},
designSystemSetup: {
importedBrand: "Marque importée",
figmaCreateSuccess: "Système de conception créé à partir de Figma",
figmaCreateError: "Impossible de créer le système de conception",
backToDesignSystems: "Retour aux systèmes de conception",
continue: "Continuer jusqu'à la génération",
title: "Configurez votre système de conception",
description:
"Connectez Figma, le code et les consignes design.md facultatives via Builder DSI. Plus le contexte est riche, plus le système de l’agent est précis.",
figmaParsingTitle: "Démarrage de l’indexation Builder DSI...",
figmaParsingDescription:
"Builder extraira les jetons, composants, ressources et consignes d’utilisation",
uploadFig: "Connecter Figma avec un fichier .fig",
figmaSaveLocalCopy:
"Importez une copie locale Figma : File -> Save local copy",
websiteUrl: "Site Web URL",
add: "Ajouter",
githubRepository: "référentiel GitHub",
privateRepoPrefix:
"Les dépôts privés nécessitent un jeton à granularité fine enregistré sous",
privateRepoSuffix: "avec accès en lecture au contenu.",
localCodeFiles: "Connecter des fichiers de code",
dropCodeFiles:
"Déposez ici CSS, config Tailwind, fichiers de thème ou design.md",
documents: "Documents & présentations",
documentsHelp:
"PPTX, DOCX, PDF, XLSX – guides de marque, pitch decks, documents de style",
visualReferences: "Captures d'écran et références visuelles",
visualReferencesHelp:
"Captures d'écran de produits, tableaux d'humeur, images d'inspiration",
assets: "Logos, polices et autres actifs",
assetsHelp: "Logos SVG, polices.woff2, fichiers d'actifs de marque",
designSystem: "Système de conception",
designProject: "Projet de conception",
companyPlaceholder:
"par ex. Acme Corp - Nous construisons des outils de développement pour les équipes modernes...",
notesPlaceholder:
"par ex. Nous préférons un thème sombre avec un contraste élevé. Notre marque utilise Poppins pour les titres et DM Sans pour le corps. Gardez les coins arrondis à 12px...",
customInstructionsPlaceholder:
"par ex. Incluez toujours un système de navigation supérieur collant. Préférez les citations éditoriales aux statistiques des héros. N'utilisez jamais d'arrière-plans dégradés. Les logos vont toujours en bas à gauche...",
designSystemName: "Nom du système de conception",
brandNamePlaceholder: "Nom de la marque",
extractedSummary:
"Extrait des nœuds {{nodes}}, des dégradés {{gradients}}, des images {{images}}",
previewColors: "Couleurs",
signatureGradients: "Dégradés signature",
previewTypography: "Typographie",
headingsLabel: "Rubriques:",
bodyLabel: "Corps:",
brandBrief: "Présentation de la marque",
brandBriefHelp:
"Cela guide chaque conception générée avec ce système. Affinez-le à tout moment après la création.",
creating: "Création...",
createDesignSystem: "Créer un système de conception",
chooseDifferentFile: "Choisissez un autre fichier",
figmaThumbnailAlt: "vignette du fichier Figma",
errors: {
chooseFig:
"Veuillez choisir un fichier.fig (dans Figma: Fichier -> Enregistrer la copie locale).",
parseFig:
"Impossible de lancer l’indexation Builder pour ce fichier Figma.",
enterWebsite: "Entrez un site Web URL avant de l'ajouter.",
websiteProtocol:
"Le site Web URLs doit commencer par http:// ou https://.",
enterGithub: "Entrez un référentiel GitHub URL avant de l'ajouter.",
githubUrl:
"Utilisez un référentiel GitHub complet URL, comme https://github.com/org/repo.",
noSources:
"Ajoutez au moins une source avant de générer un système de conception.",
},
sections: {
figma: {
title: "Connecter Figma",
description:
"Importez un .fig et Builder DSI indexera les jetons, composants, ressources et consignes de marque dans un système de design réutilisable.",
},
company: {
title: "Entreprise / Marque",
description: "Nom, description et site Web",
},
code: {
title: "Connecter le code",
description:
"Les dépôts GitHub, fichiers de code locaux ou design.md sont indexés par Builder DSI.",
},
designFiles: {
title: "Fichiers de référence",
description:
"Documents, captures d’écran et ressources de marque enrichissent le contexte Builder DSI",
},
importExisting: {
title: "Importer depuis un existant",
description:
"Créer un système de conception ou extraire des jetons d'un projet",
},
notes: {
title: "Notes complémentaires",
description:
"Préférences de conception, contraintes, directives de marque",
},
customInstructions: {
title: "Instructions personnalisées",
description:
"Enregistré avec le système de conception. Réappliqué chaque fois que l'agent l'utilise pour générer une conception.",
},
},
colorLabels: {
accent: "Accent",
primary: "Primaire",
secondary: "Secondaire",
background: "Arrière-plan",
surface: "Surface",
text: "Texte",
muted: "En sourdine",
},
},
designSystems: {
deleteError: "Impossible de supprimer le système de conception",
updateSuccess: "Système de conception mis à jour",
updateError: "Impossible de mettre à jour le système de conception",
bulkDeleteError:
"Impossible de supprimer les systèmes de conception sélectionnés",
selectedLabel: "choisi",
yoursTitle: "Vos systèmes de conception",
newCardDescription: "Configurez votre marque",
defaultBadge: "Défaut",
selectAria: "Sélectionnez {{title}}",
currentlyDefault: "Actuellement par défaut",
moreActionsAria: "Plus de propositions pour {{title}}",
showcase: {
title: "Points de départ prêts pour la production",
description:
"Utilisez une copie reliée à ses sources d’un système de conception public reconnu. Chaque copie inclut de vrais jetons, échelles typographiques, espacements, formes, états et attributions.",
useTemplate: "Utiliser ce système",
adding: "Ajout...",
openSource: "Ouvrir la documentation source de {{title}}",
license: "Licence source : {{license}}",
addSuccess: "Système de conception ajouté",
addError: "Impossible d’ajouter le système de conception",
descriptions: {
material3:
"Rôles clairs de base de Google, échelle Roboto, espacement de 4 dp et système de formes Material.",
carbon:
"Thème White d’IBM Carbon v11, typographie IBM Plex, rôles colorimétriques d’entreprise et espacement 2/4/8.",
primer:
"Jetons clairs de GitHub Primer, Mona Sans, densité compacte pour outils et espacement adaptatif.",
},
},
actions: {
done: "Fait",
select: "Sélectionner",
new: "Nouveau système de conception",
clearAll: "Effacer tous les systèmes de conception",
selectAll: "Sélectionnez tous les systèmes de conception",
clearSelection: "Effacer la sélection",
delete: "Supprimer",
setDefault: "Définir par défaut",
cancel: "Annuler",
},
deleteDialog: {
title: "Supprimer le système de conception?",
description:
"Cela supprimera définitivement ce système de conception et le dissociera de toutes les conceptions qui l'utilisent. Cette action ne peut pas être annulée.",
bulkTitle: "Supprimer les systèmes de conception {{count}}?",
bulkDescription:
"Cela supprimera définitivement les systèmes de conception {{count}} et les dissociera de toutes les conceptions qui les utilisent. Cette action ne peut pas être annulée.",
},
details: {
description:
"Examinez les jetons enregistrés et mettez à jour les détails que les agents utilisent lorsqu'ils appliquent ce système de conception.",
titleLabel: "Titre",
descriptionLabel: "Description",
customInstructionsTitle: "Instructions personnalisées",
customInstructionsDescription:
"Un guidage durable que l'agent réutilise chaque fois que ce système est lié à une conception.",
noCustomInstructions:
"Aucune instruction personnalisée n'a encore été enregistrée.",
useAsStartingPoint: "Utiliser comme point de départ",
saving: "Économie...",
saveChanges: "Enregistrer les modifications",
},
tokenPreview: {
title: "Aperçu du jeton",
description:
"Un instantané des couleurs, du type, de l'espacement et des ressources actuellement stockés.",
colors: "Couleurs",
noColors: "Aucun jeton de couleur enregistré.",
typography: "Typographie",
details: "Détails",
spacing: "Espacement",
borders: "Frontières",
defaults: "Valeurs par défaut",
logos: "Logos",
assets: "Actifs",
savedCount: "{{count}} enregistré",
colorLabels: {
primary: "Primaire",
secondary: "Secondaire",
accent: "Accent",
background: "Arrière-plan",
surface: "Surface",
text: "Texte",
mutedText: "Texte masqué",
},
typeLabels: {
headingFont: "Police de titre",
bodyFont: "Police du corps",
headingWeight: "Poids du cap",
bodyWeight: "Poids corporel",
},
},
empty: {
title: "Créez votre premier système de conception",
description:
"Maintenez une image de marque cohérente dans toutes vos créations avec des couleurs, une typographie et des ressources partagées.",
},
},
},
"de-DE": {
common: {
genericError: "Etwas ist schief gelaufen",
},
editPanel: {
colorInputLabel: "Farbe",
properties: "Eigenschaften",
pageHelpTitle: "Klicken Sie auf ein beliebiges Element auf der Leinwand",
pageHelpDescription:
"Bearbeiten Sie Typografie, Abstände, Größen, Ränder und Füllung für alles, was Sie auswählen. Seitenstandards unten.",
sections: {
page: "Seite",
typography: "Typografie",
flexLayout: "Flex-Layout",
layout: "Layout",
spacing: "Abstand",
border: "Grenze",
fill: "Füllen",
},
labels: {
background: "Hintergrund",
font: "Schriftart",
baseSize: "Basisgröße",
size: "Größe",
weight: "Gewicht",
color: "Farbe",
align: "Ausrichten",
lineHeight: "Zeilenhöhe",
tracking: "Verfolgung",
direction: "Richtung",
justify: "Rechtfertigen",
gap: "Lücke",
width: "Breite",
height: "Höhe",
opacity: "Opazität",
padding: "Polsterung",
margin: "Marge",
radius: "Radius",
rotation: "Drehung",
flipHorizontal: "Horizontal spiegeln",
flipVertical: "Vertikal spiegeln",
},
sidePlaceholders: {
top: "T",
right: "R",
bottom: "B",
left: "L",
},
fontFamilies: {
inherit: "Erben",
sansSerif: "Ohne Serifen",
serif: "Serife",
monospace: "Monospace",
inter: "Inter-Schrift",
poppins: "Poppins-Schrift",
playfairDisplay: "Playfair Display-Schrift",
jetBrainsMono: "JetBrains Mono-Schrift",
},
fontWeights: {
thin: "Dünn",
extraLight: "Extra leicht",
light: "Licht",
regular: "Regulär",
medium: "Medium",
semiBold: "Halbfett",
bold: "Deutlich",
extraBold: "Extra fett",
black: "Schwarz",
},
textAligns: {
left: "Links",
center: "Center",
right: "Rechts",
justify: "Rechtfertigen",
},
textDecorations: {
underline: "Unterstrichen",
strikethrough: "Durchgestrichen",
},
textCases: {
none: "Keine",
uppercase: "Großbuchstaben",
lowercase: "Kleinbuchstaben",
capitalize: "Großschreibung",
},
typographyDetails: {
basicsTab: "Grundlagen",
detailsTab: "Details",
decorationLabel: "Dekoration",
caseLabel: "Groß-/Kleinschreibung",
},
flexDirections: {
row: "Reihe",
column: "Spalte",
rowReverse: "Zeilenumkehr",
columnReverse: "Spalte umkehren",
},
justifyOptions: {
start: "Start",
center: "Center",
end: "Ende",
between: "Zwischen",
around: "Um",
evenly: "Gleichmäßig",
},
alignOptions: {
start: "Start",
center: "Center",
end: "Ende",
stretch: "Strecken",
baseline: "Grundlinie",
},
},
designEditor: {
generationMayHaveStopped:
"Die Generierung wurde möglicherweise vor dem Erstellen der Dateien gestoppt. Überprüfen Sie die Agentennachricht oder versuchen Sie es erneut.",
generationMayHaveStoppedToast:
"Die Generierung wurde möglicherweise vor dem Erstellen der Dateien gestoppt.",
generationStoppedRetry:
"Die Generierung wurde vor dem Erstellen der Dateien gestoppt. Versuchen Sie erneut, mit derselben Eingabeaufforderung fortzufahren.",
generationStoppedCheckAgent:
"Die Generierung wurde vor dem Erstellen der Dateien gestoppt. Überprüfen Sie die Agentennachricht oder versuchen Sie es erneut.",
notFound: "Design nicht gefunden",
backToDesigns: "Zurück zu den Designs",
clickToRename: "Klicken Sie zum Umbenennen",
modes: {
annotate: "Annotieren",
comment: "Kommentar",
edit: "Bearbeiten",
draw: "Ziehen",
interact: "Interact",
screens: "Bildschirme",
},
undo: "Rückgängig machen",
undoShortcut: "Rückgängig machen (⌘Z)",
redo: "Wiederholen",
redoShortcut: "Wiederholen (⇧⌘Z)",
returnToCurrentScreen: "Zurück zum aktuellen Bildschirm",
openScreenOverview: "Bildschirmübersicht öffnen",
currentScreen: "Aktueller Bildschirm",
screenOverview: "Bildschirmübersicht",
devicePreview: "Gerätevorschau",
devices: {
responsive: "Reaktionsschnell",
desktop: "Desktop",
tablet: "Tablette",
mobile: "Mobile",
},
zoom: "Zoom",
zoomOut: "Herauszoomen",
zoomIn: "Vergrößern",
more: "Mehr",
stopPinningComments: "Hören Sie auf, Kommentare anzupinnen",
pinComment: "Kommentar pinnen",
export: "Export",
downloadHtml: "Laden Sie HTML herunter",
downloadPng: "Laden Sie PNG herunter",
downloadSvg: "Laden Sie SVG herunter",
downloadZip: "Laden Sie ZIP herunter",
downloadPdfAllScreens: "Laden Sie PDF herunter (Alle Screens)",
copyCodingHandoff: "Übergabe der Codierung kopieren",
pickDirection: "Wählen Sie eine Richtung",
variations: "{{count}}-Variationen",
close: "Schließen",
generating: "Design generieren...",
noFiles:
"Noch keine Dateien. Bitten Sie den Agenten, einen Entwurf zu erstellen.",
tryAgain: "Versuchen Sie es erneut",
newPrompt: "Neue Eingabeaufforderung",
generateDesign: "Design generieren",
hideTweaks: "Optimierungen ausblenden",
showTweaks: "Optimierungen anzeigen",
tweaks: "Optimierungen",
generatePlaceholder: "Beschreiben Sie, was Sie bauen möchten...",
tweaksPromptTitle: "Welche Optimierungen wünschen Sie?",
tweaksPlaceholder: "Akzentoptionen, Dichte, Radius, Dunkelmodus...",
designExport: "Design-Export",
toasts: {
tweakConflict:
"Die Anpassungen wurden an anderer Stelle geändert. Aktualisieren Sie das Design, bevor Sie es erneut versuchen.",
tweakSaveNotDurable:
"Die Anpassungen sind noch nicht gespeichert. Lassen Sie diesen Tab geöffnet und versuchen Sie es erneut.",
codingHandoffError:
"Die Codierungsübergabe konnte nicht erstellt werden",
codingHandoffCopied: "Codierungsübergabe kopiert",
clipboardBlocked: "Zwischenablage blockiert",
htmlCreateError: "Der HTML-Download konnte nicht erstellt werden",
htmlDownloaded: "HTML heruntergeladen",
htmlExportError: "HTML konnte nicht exportiert werden",
zipCreateError: "Der ZIP-Download konnte nicht erstellt werden",
zipDownloaded: "ZIP heruntergeladen",
zipExportError: "ZIP konnte nicht exportiert werden",
openScreenPng: "Öffnen Sie einen Bildschirm, bevor Sie PNG exportieren",
pngCreateError: "Der PNG-Download konnte nicht erstellt werden",
pngDownloaded: "PNG heruntergeladen",
pngSaveError: "PNG konnte nicht gespeichert werden",
pngExportError: "PNG konnte nicht exportiert werden",
pdfAllScreensDownloaded: "PDF heruntergeladen (Alle Screens)",
openScreenSvg: "Öffnen Sie einen Bildschirm, bevor Sie SVG exportieren",
svgDownloaded: "SVG heruntergeladen",
svgExportError: "SVG konnte nicht exportiert werden",
undoSkippedConcurrentEdit:
"Rückgängig übersprungen – jemand anderes hat das verschoben",
redoSkippedConcurrentEdit:
"Wiederholen übersprungen – jemand anderes hat das verschoben",
},
},
designSystemSetup: {
importedBrand: "Importierte Marke",
figmaCreateSuccess: "Designsystem erstellt aus Figma",
figmaCreateError: "Das Designsystem konnte nicht erstellt werden",
backToDesignSystems: "Zurück zu Designsystemen",
continue: "Weiter zur Generation",
title: "Richten Sie Ihr Designsystem ein",
description:
"Verbinde Figma, Code und optionale design.md-Anweisungen über Builder DSI. Mehr Kontext gibt dem Agenten ein genaueres System.",
figmaParsingTitle: "Builder-DSI-Indizierung wird gestartet...",
figmaParsingDescription:
"Builder extrahiert Tokens, Komponenten, Assets und Nutzungsanweisungen",
uploadFig: "Figma mit einer .fig-Datei verbinden",
figmaSaveLocalCopy:
"Lade eine lokale Figma-Kopie hoch: File -> Save local copy",
websiteUrl: "Website URL",
add: "Hinzufügen",
githubRepository: "GitHub-Repository",
privateRepoPrefix:
"Private Repos benötigen einen feinkörnigen Token, der unter gespeichert wird",
privateRepoSuffix: "mit Lesezugriff auf Inhalte.",
localCodeFiles: "Code-Dateien verbinden",
dropCodeFiles:
"CSS, Tailwind-Konfiguration, Theme-Dateien oder design.md hier ablegen",
documents: "Dokumente und Präsentationen",
documentsHelp:
"PPTX, DOCX, PDF, XLSX – Markenführer, Pitchdecks, Stildokumente",
visualReferences: "Screenshots und visuelle Referenzen",
visualReferencesHelp:
"Produkt-Screenshots, Moodboards, Inspirationsbilder",
assets: "Logos, Schriftarten und andere Assets",
assetsHelp: "SVG-Logos,.woff2-Schriftarten, Marken-Asset-Dateien",
designSystem: "Designsystem",
designProject: "Designprojekt",
companyPlaceholder:
"z.B. Acme Corp – Wir entwickeln Entwicklertools für moderne Teams...",
notesPlaceholder:
"z.B. Wir bevorzugen ein dunkles Thema mit hohem Kontrast. Unsere Marke verwendet Poppins für Überschriften und DM Sans für Text. Halten Sie die Ecken bei 12 Pixel abgerundet...",
customInstructionsPlaceholder:
"z.B. Fügen Sie immer ein selbstklebendes Top-Navigationssystem hinzu. Bevorzugen Sie redaktionelle Zitate gegenüber Heldenstatistiken. Verwenden Sie niemals Hintergründe mit Farbverlauf. Logos erscheinen immer unten links...",
designSystemName: "Name des Designsystems",
brandNamePlaceholder: "Markenname",
extractedSummary:
"Extrahiert aus {{nodes}}-Knoten, {{gradients}}-Verläufen und {{images}}-Bildern",
previewColors: "Farben",
signatureGradients: "Signaturverläufe",
previewTypography: "Typografie",
headingsLabel: "Überschriften:",
bodyLabel: "Körper:",
brandBrief: "Markenbrief",
brandBriefHelp:
"Dies leitet jedes Design, das mit diesem System erstellt wurde. Sie können es nach der Erstellung jederzeit verfeinern.",
creating: "Erstellen...",
createDesignSystem: "Designsystem erstellen",
chooseDifferentFile: "Wählen Sie eine andere Datei",
figmaThumbnailAlt: "Miniaturansicht der Figma-Datei",
errors: {
chooseFig:
"Bitte wählen Sie eine.fig-Datei (in Figma: Datei -> Lokale Kopie speichern).",
parseFig:
"Die Builder-Indizierung für diese Figma-Datei konnte nicht gestartet werden.",
enterWebsite:
"Geben Sie eine Website URL ein, bevor Sie sie hinzufügen.",
websiteProtocol:
"Die Website URLs muss mit http:// oder https:// beginnen.",
enterGithub:
"Geben Sie ein GitHub-Repository URL ein, bevor Sie es hinzufügen.",
githubUrl:
"Verwenden Sie ein vollständiges GitHub-Repository URL, wie https://github.com/org/repo.",
noSources:
"Fügen Sie mindestens eine Quelle hinzu, bevor Sie ein Designsystem erstellen.",
},
sections: {
figma: {
title: "Figma verbinden",
description:
"Lade eine .fig hoch und Builder DSI indexiert Tokens, Komponenten, Assets und Markenanweisungen als wiederverwendbares Designsystem.",
},
company: {
title: "Unternehmen / Marke",
description: "Name, Beschreibung und Website",
},
code: {
title: "Code verbinden",
description:
"GitHub-Repositories, lokale Code-Dateien oder design.md werden mit Builder DSI indexiert.",
},
designFiles: {
title: "Referenzdateien",
description:
"Dokumente, Screenshots und Markenassets ergänzen den Builder-DSI-Kontext",
},
importExisting: {
title: "Aus vorhandenem importieren",
description:
"Forken Sie ein Designsystem oder extrahieren Sie Token aus einem Projekt",
},
notes: {
title: "Zusätzliche Hinweise",
description: "Designpräferenzen, Einschränkungen, Markenrichtlinien",
},
customInstructions: {
title: "Benutzerdefinierte Anweisungen",
description:
"Mit dem Designsystem gespeichert. Wird jedes Mal erneut angewendet, wenn der Agent es zum Generieren eines Designs verwendet.",
},
},
colorLabels: {
accent: "Akzent",
primary: "Primär",
secondary: "Sekundär",
background: "Hintergrund",
surface: "Oberfläche",
text: "Text",
muted: "Stummgeschaltet",
},
},
designSystems: {
deleteError: "Das Designsystem konnte nicht gelöscht werden",
updateSuccess: "Designsystem aktualisiert",
updateError: "Das Designsystem konnte nicht aktualisiert werden",
bulkDeleteError:
"Ausgewählte Designsysteme konnten nicht gelöscht werden",
selectedLabel: "ausgewählt",
yoursTitle: "Ihre Designsysteme",
newCardDescription: "Richten Sie Ihre Marke ein",
defaultBadge: "Standard",
selectAria: "Wählen Sie {{title}}",
currentlyDefault: "Derzeit Standard",
moreActionsAria: "Weitere Aktionen für {{title}}",
showcase: {
title: "Produktionsreife Ausgangspunkte",
description:
"Nutzen Sie eine mit Quellen verknüpfte Kopie eines etablierten öffentlichen Designsystems. Jede Kopie enthält echte Tokens, Typografieskalen, Abstände, Formen, Zustände und Quellenangaben.",
useTemplate: "Dieses System verwenden",
adding: "Wird hinzugefügt...",
openSource: "Quelldokumentation für {{title}} öffnen",
license: "Quelllizenz: {{license}}",
addSuccess: "Designsystem hinzugefügt",
addError: "Designsystem konnte nicht hinzugefügt werden",
descriptions: {
material3:
"Googles helle Basisrollen, Roboto-Typografieskala, 4-dp-Abstände und Material-Formensystem.",
carbon:
"IBM Carbon v11 White Theme, IBM Plex, Farbrollen für Unternehmenssoftware und 2/4/8-Abstände.",
primer:
"GitHub Primer Light Tokens, Mona Sans, kompakte Werkzeugdichte und responsive Abstände.",
},
},
actions: {
done: "Erledigt",
select: "Wählen",
new: "Neues Designsystem",
clearAll: "Löschen Sie alle Designsysteme",
selectAll: "Wählen Sie alle Designsysteme aus",
clearSelection: "Klare Auswahl",
delete: "Löschen",
setDefault: "Als Standard festlegen",
cancel: "Stornieren",
},
deleteDialog: {
title: "Designsystem löschen?",
description:
"Dadurch wird dieses Designsystem dauerhaft gelöscht und die Verknüpfung mit allen Designs, die es verwenden, wird aufgehoben. Diese Aktion kann nicht rückgängig gemacht werden.",
bulkTitle: "{{count}} Design Systems löschen?",
bulkDescription:
"Dadurch werden {{count}}-Designsysteme dauerhaft gelöscht und die Verknüpfung mit allen Designs, die sie verwenden, wird aufgehoben. Diese Aktion kann nicht rückgängig gemacht werden.",
},
details: {
description:
"Überprüfen Sie die gespeicherten Token und aktualisieren Sie die Details, die Agenten verwenden, wenn sie dieses Designsystem anwenden.",
titleLabel: "Titel",
descriptionLabel: "Beschreibung",
customInstructionsTitle: "Benutzerdefinierte Anweisungen",
customInstructionsDescription:
"Dauerhafte Anleitung, die der Agent immer dann wiederverwendet, wenn dieses System mit einem Design verknüpft wird.",
noCustomInstructions:
"Noch keine benutzerdefinierten Anweisungen gespeichert.",
useAsStartingPoint: "Als Ausgangspunkt verwenden",
saving: "Sparen...",
saveChanges: "Änderungen speichern",
},
tokenPreview: {
title: "Token-Vorschau",
description:
"Eine Momentaufnahme der Farben, des Typs, der Abstände und der aktuell gespeicherten Elemente.",
colors: "Farben",
noColors: "Keine Farbtokens gespeichert.",
typography: "Typografie",
details: "Details",
spacing: "Abstand",
borders: "Grenzen",
defaults: "Standardeinstellungen",
logos: "Logos",
assets: "Vermögenswerte",
savedCount: "{{count}} gespeichert",
colorLabels: {
primary: "Primär",
secondary: "Sekundär",
accent: "Akzent",
background: "Hintergrund",
surface: "Oberfläche",
text: "Text",
mutedText: "Stummgeschalteter Text",
},
typeLabels: {
headingFont: "Schriftart der Überschrift",
bodyFont: "Körperschrift",
headingWeight: "Überschriftsgewicht",
bodyWeight: "Körpergewicht",
},
},
empty: {
title: "Erstellen Sie Ihr erstes Designsystem",
description:
"Sorgen Sie für ein einheitliches Branding aller Ihrer Designs mit gemeinsamen Farben, Typografie und Assets.",
},
},
},
"ja-JP": {
common: {
genericError: "何か問題が発生しました",
},
editPanel: {
colorInputLabel: "色",
properties: "プロパティ",
pageHelpTitle: "キャンバス上の任意の要素をクリックします",
pageHelpDescription:
"選択した内容のタイポグラフィ、間隔、サイズ、境界線、塗りつぶしを編集します。ページのデフォルトは以下です。",
sections: {
page: "ページ",
typography: "タイポグラフィ",
flexLayout: "フレックスレイアウト",
layout: "レイアウト",
spacing: "間隔",
border: "国境",
fill: "埋める",
},
labels: {
background: "背景",
font: "フォント",
baseSize: "ベースサイズ",
size: "サイズ",
weight: "重さ",
color: "色",
align: "整列",
lineHeight: "線の高さ",
tracking: "トラッキング",
direction: "方向",
justify: "正当化する",
gap: "ギャップ",
width: "幅",
height: "身長",
opacity: "不透明度",
padding: "パディング",
margin: "マージン",
radius: "半径",
rotation: "回転",
flipHorizontal: "水平方向に反転",
flipVertical: "垂直方向に反転",
},
sidePlaceholders: {
top: "T",
right: "R",
bottom: "B",
left: "L",
},
fontFamilies: {
inherit: "継承する",
sansSerif: "サンセリフ",
serif: "セリフ",
monospace: "等空間",
inter: "Inter フォント",
poppins: "Poppins フォント",
playfairDisplay: "Playfair Display フォント",
jetBrainsMono: "JetBrains Mono フォント",
},
fontWeights: {
thin: "薄い",
extraLight: "エクストラライト",
light: "ライト",
regular: "通常",
medium: "中くらい",
semiBold: "セミボールド",
bold: "大胆な",
extraBold: "エクストラボールド",
black: "黒",
},
textAligns: {
left: "左",
center: "中心",
right: "右",
justify: "正当化する",
},
textDecorations: {
underline: "下線",
strikethrough: "取り消し線",
},
textCases: {
none: "なし",
uppercase: "大文字",
lowercase: "小文字",
capitalize: "先頭を大文字にする",
},
typographyDetails: {
basicsTab: "基本",
detailsTab: "詳細",
decorationLabel: "装飾",
caseLabel: "大文字/小文字",
},
flexDirections: {
row: "行",
column: "カラム",
rowReverse: "行反転",
columnReverse: "カラムリバース",
},
justifyOptions: {
start: "始める",
center: "中心",
end: "終わり",
between: "間",
around: "その周り",
evenly: "均等に",
},
alignOptions: {
start: "始める",
center: "中心",
end: "終わり",
stretch: "ストレッチ",
baseline: "ベースライン",
},
},
designEditor: {
generationMayHaveStopped:
"ファイルを作成する前に生成が停止している可能性があります。エージェントのメッセージを確認するか、再試行してください。",
generationMayHaveStoppedToast:
"ファイルを作成する前に生成が停止している可能性があります。",
generationStoppedRetry:
"ファイルを作成する前に生成が停止しました。もう一度同じプロンプトから続行してみてください。",
generationStoppedCheckAgent:
"ファイルを作成する前に生成が停止しました。エージェントのメッセージを確認するか、再試行してください。",
notFound: "デザインが見つかりません",
backToDesigns: "デザインに戻る",
clickToRename: "クリックして名前を変更します",
modes: {
annotate: "注釈",
comment: "コメント",
edit: "編集",
draw: "描く",
interact: "Interact",
screens: "画面",
},
undo: "元に戻す",
undoShortcut: "元に戻す (⌘Z)",
redo: "やり直し",
redoShortcut: "やり直し(⇧⌘Z)",
returnToCurrentScreen: "現在の画面に戻る",
openScreenOverview: "開いた画面の概要",
currentScreen: "現在の画面",
screenOverview: "画面概要",
devicePreview: "デバイスのプレビュー",
devices: {
responsive: "レスポンシブ",
desktop: "デスクトップ",
tablet: "錠剤",
mobile: "携帯",
},
zoom: "ズーム",
zoomOut: "ズームアウト",
zoomIn: "ズームイン",
more: "もっと",
stopPinningComments: "コメントの固定をやめる",
pinComment: "ピンコメント",
export: "輸出",
downloadHtml: "ダウンロード",
downloadPng: "ダウンロード",
downloadSvg: "ダウンロード",
downloadZip: "ダウンロード",
downloadPdfAllScreens: "PDFをダウンロード(すべての画面)",
copyCodingHandoff: "コピーコーディングのハンドオフ",
pickDirection: "方向を選択してください",
variations: "{{count}}のバリエーション",
close: "近い",
generating: "デザインを生成中...",
noFiles:
"まだファイルがありません。エージェントにデザインの作成を依頼します。",
tryAgain: "もう一度やり直してください",
newPrompt: "新しいプロンプト",
generateDesign: "デザインの生成",
hideTweaks: "調整を非表示にする",
showTweaks: "微調整を表示",
tweaks: "微調整",
generatePlaceholder: "作りたいものを説明してください...",
tweaksPromptTitle: "どのような調整が必要ですか?",
tweaksPlaceholder: "アクセントのオプション、密度、半径、ダークモード...",
designExport: "デザインのエクスポート",
toasts: {
tweakConflict:
"調整内容が別の場所で変更されました。デザインを更新してからもう一度お試しください。",
tweakSaveNotDurable:
"調整内容はまだ保存されていません。このタブを開いたまま、もう一度お試しください。",
codingHandoffError: "コーディングハンドオフを作成できませんでした",
codingHandoffCopied: "コーディングの引き継ぎがコピーされました",
clipboardBlocked: "クリップボードがブロックされました",
htmlCreateError: "HTML ダウンロードを作成できませんでした",
htmlDownloaded: "HTMLがダウンロードされました",
htmlExportError: "HTML をエクスポートできませんでした",
zipCreateError: "ZIP ダウンロードを作成できませんでした",
zipDownloaded: "ZIPがダウンロードされました",
zipExportError: "ZIP をエクスポートできませんでした",
openScreenPng: "PNG をエクスポートする前に画面を開く",
pngCreateError: "PNG ダウンロードを作成できませんでした",
pngDownloaded: "PNGがダウンロードされました",
pngSaveError: "PNG を保存できませんでした",
pngExportError: "PNG をエクスポートできませんでした",
pdfAllScreensDownloaded: "PDFがダウンロードされました(すべての画面)",
openScreenSvg: "SVG をエクスポートする前に画面を開く",
svgDownloaded: "SVGがダウンロードされました",
svgExportError: "SVG をエクスポートできませんでした",
undoSkippedConcurrentEdit:
"元に戻す操作をスキップしました — 他のユーザーがそれを移動しました",
redoSkippedConcurrentEdit:
"やり直し操作をスキップしました — 他のユーザーがそれを移動しました",
},
},
designSystemSetup: {
importedBrand: "インポートブランド",
figmaCreateSuccess: "Figma から作成されたデザインシステム",
figmaCreateError: "デザインシステムを作成できませんでした",
backToDesignSystems: "設計システムに戻る",
continue: "世代を継続する",
title: "デザインシステムをセットアップする",
description:
"Figma、コード、任意の design.md ガイドを Builder DSI で接続します。コンテキストが多いほど、エージェントのシステムは正確になります。",
figmaParsingTitle: "Builder DSI のインデックス作成を開始しています...",
figmaParsingDescription:
"Builder がトークン、コンポーネント、アセット、利用ガイドを抽出します",
uploadFig: "Figma .fig ファイルを接続",
figmaSaveLocalCopy:
"Figma のローカルコピーをアップロード: File -> Save local copy",
websiteUrl: "ウェブサイト URL",
add: "追加",
githubRepository: "GitHub リポジトリ",
privateRepoPrefix:
"プライベート リポジトリには、次のように保存されたきめ細かいトークンが必要です。",
privateRepoSuffix: "コンテンツ読み取りアクセス付き。",
localCodeFiles: "コードファイルを接続",
dropCodeFiles:
"CSS、Tailwind 設定、テーマファイル、design.md をここにドロップ",
documents: "ドキュメントとプレゼンテーション",
documentsHelp:
"PPTX、DOCX、PDF、XLSX - ブランド ガイド、提案資料、スタイル ドキュメント",
visualReferences: "スクリーンショットとビジュアルリファレンス",
visualReferencesHelp:
"製品のスクリーンショット、ムードボード、インスピレーション画像",
assets: "ロゴ、フォント、その他のアセット",
assetsHelp: "SVG ロゴ、.woff2 フォント、ブランド資産ファイル",
designSystem: "デザインシステム",
designProject: "デザインプロジェクト",
companyPlaceholder:
"例えばAcme Corp - 当社は現代のチーム向けの開発者ツールを構築しています...",
notesPlaceholder:
"例えばコントラストの高い暗いテーマを好みます。当ブランドでは見出しにPoppins、本文にDM Sansを使用しています。 12pxで角を丸く保ちます...",
customInstructionsPlaceholder:
"例えば常にスティッキートップナビゲーションを含めてください。ヒーローの統計情報よりも、編集者の引用文を優先します。グラデーションの背景は決して使用しないでください。ロゴは常に左下にあります...",
designSystemName: "デザインシステム名",
brandNamePlaceholder: "ブランド名",
extractedSummary:
"{{nodes}} ノード、{{gradients}} グラデーション、{{images}} 画像から抽出",
previewColors: "色",
signatureGradients: "特徴的なグラデーション",
previewTypography: "タイポグラフィ",
headingsLabel: "見出し:",
bodyLabel: "体:",
brandBrief: "ブランド概要",
brandBriefHelp:
"これは、このシステムで生成されるすべてのデザインのガイドとなります。作成後いつでも修正できます。",
creating: "作成...",
createDesignSystem: "デザインシステムの作成",
chooseDifferentFile: "別のファイルを選択してください",
figmaThumbnailAlt: "Figma ファイルのサムネイル",
errors: {
chooseFig:
".fig ファイルを選択してください (Figma の場合: [ファイル] -> [ローカル コピーを保存])。",
parseFig:
"その Figma ファイルの Builder インデックス作成を開始できませんでした。",
enterWebsite: "追加する前に、Web サイト URL を入力してください。",
websiteProtocol:
"ウェブサイト URLs は http:// または https:// で始まる必要があります。",
enterGithub: "追加する前に、GitHub リポジトリ URL を入力します。",
githubUrl:
"https://github.com/org/repo など、完全な GitHub リポジトリ URL を使用します。",
noSources:
"デザイン システムを生成する前に、少なくとも 1 つのソースを追加します。",
},
sections: {
figma: {
title: "Figma を接続",
description:
".fig をアップロードすると、Builder DSI がトークン、コンポーネント、アセット、ブランドガイドを再利用可能なデザインシステムにインデックス化します。",
},
company: {
title: "会社・ブランド",
description: "名前、説明、Web サイト",
},
code: {
title: "コードを接続",
description:
"GitHub リポジトリ、ローカルコードファイル、design.md は Builder DSI でインデックス化されます。",
},
designFiles: {
title: "参照ファイル",
description:
"ドキュメント、スクリーンショット、ブランドアセットが Builder DSI のコンテキストを補足します",
},
importExisting: {
title: "既存からインポート",
description:
"デザインシステムをフォークするか、プロジェクトからトークンを抽出します",
},
notes: {
title: "追加の注意事項",
description: "デザインの好み、制約、ブランドのガイドライン",
},
customInstructions: {
title: "カスタム命令",
description:
"デザインシステムで保存されます。エージェントがデザインを生成するために使用するたびに再適用されます。",
},
},
colorLabels: {
accent: "アクセント",
primary: "主要な",
secondary: "二次",
background: "背景",
surface: "表面",
text: "文章",
muted: "ミュート",
},
},
designSystems: {
deleteError: "デザインシステムを削除できませんでした",
updateSuccess: "デザインシステムが更新されました",
updateError: "デザインシステムを更新できませんでした",
bulkDeleteError: "選択したデザイン システムを削除できませんでした",
selectedLabel: "選択された",
yoursTitle: "あなたのデザインシステム",
newCardDescription: "ブランドを設定する",
defaultBadge: "デフォルト",
selectAria: "{{title}}を選択します",
currentlyDefault: "現在のデフォルト",
moreActionsAria: "{{title}} のその他のアクション",
showcase: {
title: "本番対応の出発点",
description:
"確立された公開デザインシステムの、出典付きスナップショットを使用できます。各コピーには実際のトークン、書体、間隔、形状、状態ガイド、出典が含まれます。",
useTemplate: "このシステムを使用",
adding: "追加中...",
openSource: "{{title}} の公式ドキュメントを開く",
license: "ソースライセンス: {{license}}",
addSuccess: "デザインシステムを追加しました",
addError: "デザインシステムを追加できませんでした",
descriptions: {
material3:
"Google の基準ライトロール、Roboto タイプスケール、4 dp 間隔、Material シェイプシステム。",
carbon:
"IBM Carbon v11 White テーマ、IBM Plex、業務向けカラー役割、2/4/8 間隔。",
primer:
"GitHub Primer のライトトークン、Mona Sans、開発ツール向けの密度、レスポンシブ間隔。",
},
},
actions: {
done: "終わり",
select: "選択",
new: "新しいデザインシステム",
clearAll: "すべてのデザインシステムをクリアする",
selectAll: "すべてのデザインシステムを選択してください",
clearSelection: "選択をクリア",
delete: "消去",
setDefault: "デフォルトとして設定",
cancel: "キャンセル",
},
deleteDialog: {
title: "デザインシステムを削除しますか?",
description:
"これにより、このデザイン システムが完全に削除され、それを使用するデザインからのリンクが解除されます。この操作は元に戻すことができません。",
bulkTitle: "{{count}} デザイン システムを削除しますか?",
bulkDescription:
"これにより、{{count}} デザイン システムが完全に削除され、それらを使用するデザインからのリンクが解除されます。この操作は元に戻すことができません。",
},
details: {
description:
"保存されたトークンを確認し、エージェントがこの設計システムを適用するときに使用する詳細を更新します。",
titleLabel: "タイトル",
descriptionLabel: "説明",
customInstructionsTitle: "カスタム命令",
customInstructionsDescription:
"このシステムが設計にリンクされるたびに、エージェントが再利用する永続的なガイダンス。",
noCustomInstructions: "カスタム命令はまだ保存されていません。",
useAsStartingPoint: "出発点として使用する",
saving: "保存中...",
saveChanges: "変更を保存する",
},
tokenPreview: {
title: "トークンのプレビュー",
description:
"現在保存されている色、タイプ、間隔、アセットのスナップショット。",
colors: "色",
noColors: "カラートークンは保存されません。",
typography: "タイポグラフィ",
details: "詳細",
spacing: "間隔",
borders: "国境",
defaults: "デフォルト",
logos: "ロゴ",
assets: "資産",
savedCount: "{{count}} 保存しました",
colorLabels: {
primary: "主要な",
secondary: "二次",
accent: "アクセント",
background: "背景",
surface: "表面",
text: "文章",
mutedText: "ミュートされたテキスト",
},
typeLabels: {
headingFont: "見出しフォント",
bodyFont: "本文フォント",
headingWeight: "見出し重量",
bodyWeight: "体重",
},
},
empty: {
title: "初めてのデザインシステムを作成する",
description:
"共有の色、タイポグラフィー、アセットを使用して、すべてのデザインで一貫したブランドを維持します。",
},
},
},
"ko-KR": {
common: {
genericError: "문제가 발생했습니다.",
},
editPanel: {
colorInputLabel: "색상",
properties: "속성",
pageHelpTitle: "캔버스의 아무 요소나 클릭하세요.",
pageHelpDescription:
"선택한 항목에 대해 타이포그래피, 간격, 크기, 테두리 및 채우기를 편집하세요. 아래는 페이지 기본값입니다.",
sections: {
page: "페이지",
typography: "타이포그래피",
flexLayout: "플렉스 레이아웃",
layout: "공들여 나열한 것",
spacing: "간격",
border: "국경",
fill: "채우다",
},
labels: {
background: "배경",
font: "세례반",
baseSize: "기본 크기",
size: "크기",
weight: "무게",
color: "색상",
align: "맞추다",
lineHeight: "라인 높이",
tracking: "추적",
direction: "방향",
justify: "신이 옳다고 하다",
gap: "갭",
width: "너비",
height: "키",
opacity: "불투명",
padding: "심",
margin: "여유",
radius: "반지름",
rotation: "회전",
flipHorizontal: "가로로 뒤집기",
flipVertical: "세로로 뒤집기",
},
sidePlaceholders: {
top: "티",
right: "아르 자형",
bottom: "비",
left: "엘",
},
fontFamilies: {
inherit: "상속",
sansSerif: "산세리프체",
serif: "가는 장식 선",
monospace: "고정 폭",
inter: "Inter 글꼴",
poppins: "Poppins 글꼴",
playfairDisplay: "Playfair Display 글꼴",
jetBrainsMono: "JetBrains Mono 글꼴",
},
fontWeights: {
thin: "얇은",
extraLight: "엑스트라 라이트",
light: "빛",
regular: "정기적인",
medium: "중간",
semiBold: "세미 볼드체",
bold: "용감한",
extraBold: "매우 굵게",
black: "검은색",
},
textAligns: {
left: "왼쪽",
center: "센터",
right: "오른쪽",
justify: "신이 옳다고 하다",
},
textDecorations: {
underline: "밑줄",
strikethrough: "취소선",
},
textCases: {
none: "없음",
uppercase: "대문자",
lowercase: "소문자",
capitalize: "첫 글자만 대문자",
},
typographyDetails: {
basicsTab: "기본",
detailsTab: "세부 정보",
decorationLabel: "장식",
caseLabel: "대소문자",
},
flexDirections: {
row: "열",
column: "열",
rowReverse: "행 역방향",
columnReverse: "컬럼 역방향",
},
justifyOptions: {
start: "시작",
center: "센터",
end: "끝",
between: "사이",
around: "약",
evenly: "고르게",
},
alignOptions: {
start: "시작",
center: "센터",
end: "끝",
stretch: "뻗기",
baseline: "기준선",
},
},
designEditor: {
generationMayHaveStopped:
"파일을 생성하기 전에 생성이 중지되었을 수 있습니다. 상담원 메시지를 확인하거나 다시 시도하세요.",
generationMayHaveStoppedToast:
"파일을 생성하기 전에 생성이 중지되었을 수 있습니다.",
generationStoppedRetry:
"파일을 생성하기 전에 생성이 중지되었습니다. 동일한 프롬프트에서 계속하려면 다시 시도하십시오.",
generationStoppedCheckAgent:
"파일을 생성하기 전에 생성이 중지되었습니다. 상담원 메시지를 확인하거나 다시 시도하세요.",
notFound: "디자인을 찾을 수 없습니다",
backToDesigns: "디자인으로 돌아가기",
clickToRename: "이름을 바꾸려면 클릭하세요.",
modes: {
annotate: "주석",
comment: "논평",
edit: "편집하다",
draw: "그리다",
interact: "Interact",
screens: "화면",
},
undo: "끄르다",
undoShortcut: "실행 취소(⌘Z)",
redo: "다시 하다",
redoShortcut: "다시 실행(⇧⌘Z)",
returnToCurrentScreen: "현재 화면으로 돌아가기",
openScreenOverview: "화면 개요 열기",
currentScreen: "현재 화면",
screenOverview: "화면개요",
devicePreview: "장치 미리보기",
devices: {
responsive: "반응형",
desktop: "데스크탑",
tablet: "태블릿",
mobile: "이동하는",
},
zoom: "줌",
zoomOut: "축소",
zoomIn: "확대",
more: "더",
stopPinningComments: "댓글 고정 중지",
pinComment: "댓글 고정",
export: "내보내다",
downloadHtml: "HTML 다운로드",
downloadPng: "PNG 다운로드",
downloadSvg: "SVG 다운로드",
downloadZip: "ZIP 다운로드",
downloadPdfAllScreens: "PDF 다운로드 (모든 화면)",
copyCodingHandoff: "코딩 전달 복사",
pickDirection: "방향을 선택하세요",
variations: "{{count}} 변형",
close: "닫다",
generating: "디자인 생성 중...",
noFiles: "아직 파일이 없습니다. 상담원에게 디자인 생성을 요청하세요.",
tryAgain: "다시 시도하세요",
newPrompt: "새로운 프롬프트",
generateDesign: "디자인 생성",
hideTweaks: "조정 숨기기",
showTweaks: "비틀기 표시",
tweaks: "개조",
generatePlaceholder: "무엇을 만들고 싶은지 설명하세요.",
tweaksPromptTitle: "어떤 조정을 원하시나요?",
tweaksPlaceholder: "악센트 옵션, 밀도, 반경, 다크 모드...",
designExport: "디자인 수출",
toasts: {
tweakConflict:
"조정 값이 다른 곳에서 변경되었습니다. 디자인을 새로고침한 후 다시 시도하세요.",
tweakSaveNotDurable:
"조정 값이 아직 저장되지 않았습니다. 이 탭을 열어 둔 채 다시 시도하세요.",
codingHandoffError: "코딩 핸드오프를 생성할 수 없습니다.",
codingHandoffCopied: "코딩 핸드오프가 복사되었습니다.",
clipboardBlocked: "클립보드가 차단되었습니다.",
htmlCreateError: "HTML 다운로드를 생성할 수 없습니다.",
htmlDownloaded: "HTML 다운로드됨",
htmlExportError: "HTML를 내보낼 수 없습니다.",
zipCreateError: "ZIP 다운로드를 생성할 수 없습니다.",
zipDownloaded: "ZIP 다운로드됨",
zipExportError: "ZIP를 내보낼 수 없습니다.",
openScreenPng: "PNG를 내보내기 전에 화면을 엽니다",
pngCreateError: "PNG 다운로드를 생성할 수 없습니다.",
pngDownloaded: "PNG 다운로드됨",
pngSaveError: "PNG를 저장할 수 없습니다.",
pngExportError: "PNG를 내보낼 수 없습니다.",
pdfAllScreensDownloaded: "PDF 다운로드됨 (모든 화면)",
openScreenSvg: "SVG를 내보내기 전에 화면을 엽니다",
svgDownloaded: "SVG 다운로드됨",
svgExportError: "SVG를 내보낼 수 없습니다.",
undoSkippedConcurrentEdit:
"실행 취소를 건너뛰었습니다 — 다른 사용자가 이동했습니다",
redoSkippedConcurrentEdit:
"다시 실행을 건너뛰었습니다 — 다른 사용자가 이동했습니다",
},
},
designSystemSetup: {
importedBrand: "수입 브랜드",
figmaCreateSuccess: "Figma에서 생성된 디자인 시스템",
figmaCreateError: "디자인 시스템을 만들 수 없습니다",
backToDesignSystems: "디자인 시스템으로 돌아가기",
continue: "세대를 이어가다",
title: "디자인 시스템 설정",
description:
"Figma, 코드, 선택적 design.md 지침을 Builder DSI로 연결하세요. 맥락이 많을수록 에이전트의 시스템이 더 정확해집니다.",
figmaParsingTitle: "Builder DSI 색인 생성을 시작하는 중...",
figmaParsingDescription:
"Builder가 토큰, 컴포넌트, 자산, 사용 지침을 추출합니다",
uploadFig: "Figma .fig 파일 연결",
figmaSaveLocalCopy: "Figma 로컬 사본 업로드: File -> Save local copy",
websiteUrl: "웹사이트 URL",
add: "추가하다",
githubRepository: "GitHub 저장소",
privateRepoPrefix:
"비공개 저장소에는 다음과 같이 저장된 세분화된 토큰이 필요합니다.",
privateRepoSuffix: "콘텐츠 읽기 액세스 권한이 있습니다.",
localCodeFiles: "코드 파일 연결",
dropCodeFiles:
"CSS, Tailwind 구성, 테마 파일 또는 design.md를 여기에 드롭하세요",
documents: "문서 및 프리젠테이션",
documentsHelp:
"PPTX, DOCX, PDF, XLSX - 브랜드 가이드, 프레젠테이션 자료, 스타일 문서",
visualReferences: "스크린샷 및 시각적 참조",
visualReferencesHelp: "제품 스크린샷, 무드 보드, 영감 이미지",
assets: "로고, 글꼴 및 기타 자산",
assetsHelp: "SVG 로고,.woff2 글꼴, 브랜드 자산 파일",
designSystem: "디자인 시스템",
designProject: "디자인 프로젝트",
companyPlaceholder:
"예를 들어 Acme Corp - 현대적인 팀을 위한 개발자 도구를 구축합니다...",
notesPlaceholder:
"예를 들어 우리는 대비가 높은 어두운 테마를 선호합니다. 우리 브랜드는 제목에 Poppins를 사용하고 본문에 DM Sans를 사용합니다. 모서리를 12px로 둥글게 유지하세요...",
customInstructionsPlaceholder:
"예를 들어 항상 끈적한 상단 탐색을 포함하세요. 영웅 통계보다 편집자의 인용문을 선호하세요. 그라데이션 배경을 사용하지 마세요. 로고는 항상 왼쪽 하단에 위치합니다.",
designSystemName: "디자인 시스템 이름",
brandNamePlaceholder: "브랜드 이름",
extractedSummary:
"{{nodes}} 노드, {{gradients}} 그라디언트, {{images}} 이미지에서 추출",
previewColors: "그림 물감",
signatureGradients: "시그니처 그라데이션",
previewTypography: "타이포그래피",
headingsLabel: "제목:",
bodyLabel: "몸:",
brandBrief: "브랜드 개요",
brandBriefHelp:
"이는 이 시스템으로 생성된 모든 디자인을 안내합니다. 생성 후 언제든지 수정하세요.",
creating: "만드는 중...",
createDesignSystem: "디자인 시스템 구축",
chooseDifferentFile: "다른 파일을 선택하세요",
figmaThumbnailAlt: "Figma 파일 썸네일",
errors: {
chooseFig: ".fig 파일을 선택하십시오(Figma: 파일 -> 로컬 복사본 저장).",
parseFig: "해당 Figma 파일의 Builder 인덱싱을 시작할 수 없습니다.",
enterWebsite: "추가하기 전에 웹사이트 URL를 입력하세요.",
websiteProtocol:
"웹사이트 URLs는 http:// 또는 https://로 시작해야 합니다.",
enterGithub: "추가하기 전에 GitHub 저장소 URL를 입력하세요.",
githubUrl:
"https://github.com/org/repo와 같은 전체 GitHub 저장소 URL를 사용하세요.",
noSources: "디자인 시스템을 생성하기 전에 소스를 하나 이상 추가하세요.",
},
sections: {
figma: {
title: "Figma 연결",
description:
".fig를 업로드하면 Builder DSI가 토큰, 컴포넌트, 자산, 브랜드 지침을 재사용 가능한 디자인 시스템으로 색인화합니다.",
},
company: {
title: "회사/브랜드",
description: "이름, 설명, 웹사이트",
},
code: {
title: "코드 연결",
description:
"GitHub 저장소, 로컬 코드 파일 또는 design.md가 Builder DSI로 색인화됩니다.",
},
designFiles: {
title: "참조 파일",
description:
"문서, 스크린샷, 브랜드 자산이 Builder DSI 맥락을 보강합니다",
},
importExisting: {
title: "기존에서 가져오기",
description:
"디자인 시스템을 포크하거나 프로젝트에서 토큰을 추출하세요",
},
notes: {
title: "추가 참고사항",
description: "디자인 선호도, 제약 조건, 브랜드 가이드라인",
},
customInstructions: {
title: "맞춤 지침",
description:
"디자인 시스템으로 저장되었습니다. 에이전트가 디자인을 생성하기 위해 사용할 때마다 다시 적용됩니다.",
},
},
colorLabels: {
accent: "악센트",
primary: "주요한",
secondary: "반성",
background: "배경",
surface: "표면",
text: "텍스트",
muted: "음소거됨",
},
},
designSystems: {
deleteError: "디자인 시스템을 삭제할 수 없습니다.",
updateSuccess: "디자인 시스템 업데이트",
updateError: "디자인 시스템을 업데이트할 수 없습니다.",
bulkDeleteError: "선택한 디자인 시스템을 삭제할 수 없습니다.",
selectedLabel: "선택된",
yoursTitle: "내 디자인 시스템",
newCardDescription: "브랜드 설정",
defaultBadge: "기본",
selectAria: "{{title}} 선택",
currentlyDefault: "현재 기본값",
moreActionsAria: "{{title}}에 대한 추가 작업",
showcase: {
title: "프로덕션 준비 시작점",
description:
"검증된 공개 디자인 시스템의 출처 연결 스냅샷을 사용하세요. 각 사본에는 실제 토큰, 타입 스케일, 간격, 형태, 상태 지침 및 출처가 포함됩니다.",
useTemplate: "이 시스템 사용",
adding: "추가 중...",
openSource: "{{title}} 원본 문서 열기",
license: "원본 라이선스: {{license}}",
addSuccess: "디자인 시스템이 추가되었습니다",
addError: "디자인 시스템을 추가할 수 없습니다",
descriptions: {
material3:
"Google 기준 라이트 역할, Roboto 타입 스케일, 4dp 간격 및 Material 형태 시스템.",
carbon:
"IBM Carbon v11 White 테마, IBM Plex, 엔터프라이즈 색상 역할 및 2/4/8 간격.",
primer:
"GitHub Primer 라이트 토큰, Mona Sans, 개발 도구용 밀도 및 반응형 간격.",
},
},
actions: {
done: "완료",
select: "선택하다",
new: "새로운 디자인 시스템",
clearAll: "모든 디자인 시스템 지우기",
selectAll: "모든 디자인 시스템 선택",
clearSelection: "선택 취소",
delete: "삭제",
setDefault: "기본값으로 설정",
cancel: "취소",
},
deleteDialog: {
title: "디자인 시스템을 삭제하시겠습니까?",
description:
"이렇게 하면 이 디자인 시스템이 영구적으로 삭제되고 이를 사용하는 모든 디자인에서 연결이 해제됩니다. 이 작업은 취소할 수 없습니다.",
bulkTitle: "{{count}} 디자인 시스템을 삭제하시겠습니까?",
bulkDescription:
"이렇게 하면 {{count}} 디자인 시스템이 영구적으로 삭제되고 이를 사용하는 모든 디자인에서 연결이 해제됩니다. 이 작업은 취소할 수 없습니다.",
},
details: {
description:
"저장된 토큰을 검토하고 에이전트가 이 디자인 시스템을 적용할 때 사용하는 세부 정보를 업데이트하세요.",
titleLabel: "제목",
descriptionLabel: "설명",
customInstructionsTitle: "맞춤 지침",
customInstructionsDescription:
"에이전트는 이 시스템이 설계에 연결될 때마다 재사용되는 지속적인 지침을 제공합니다.",
noCustomInstructions: "아직 저장된 맞춤 안내가 없습니다.",
useAsStartingPoint: "출발점으로 사용",
saving: "절약...",
saveChanges: "변경사항 저장",
},
tokenPreview: {
title: "토큰 미리보기",
description: "현재 저장된 색상, 유형, 간격 및 자산의 스냅샷입니다.",
colors: "그림 물감",
noColors: "저장된 색상 토큰이 없습니다.",
typography: "타이포그래피",
details: "세부",
spacing: "간격",
borders: "테두리",
defaults: "기본값",
logos: "로고",
assets: "자산",
savedCount: "{{count}}가 저장되었습니다.",
colorLabels: {
primary: "주요한",
secondary: "반성",
accent: "악센트",
background: "배경",
surface: "표면",
text: "텍스트",
mutedText: "음소거된 텍스트",
},
typeLabels: {
headingFont: "제목 글꼴",
bodyFont: "본문 글꼴",
headingWeight: "표제 무게",
bodyWeight: "체중",
},
},
empty: {
title: "첫 번째 디자인 시스템 만들기",
description:
"공유된 색상, 타이포그래피 및 자산을 사용하여 모든 디자인에서 일관된 브랜딩을 유지하세요.",
},
},
},
"pt-BR": {
common: {
genericError: "Algo deu errado",
},
editPanel: {
colorInputLabel: "cor",
properties: "Propriedades",
pageHelpTitle: "Clique em qualquer elemento na tela",
pageHelpDescription:
"Edite tipografia, espaçamento, dimensionamento, bordas e preenchimento de acordo com o que você selecionar. Padrões de página abaixo.",
sections: {
page: "Página",
typography: "Tipografia",
flexLayout: "Layout flexível",
layout: "Disposição",
spacing: "Espaçamento",
border: "Fronteira",
fill: "Preencher",
},
labels: {
background: "Fundo",
font: "Fonte",
baseSize: "Tamanho básico",
size: "Tamanho",
weight: "Peso",
color: "Cor",
align: "Alinhar",
lineHeight: "Altura da linha",
tracking: "Monitorando",
direction: "Direção",
justify: "Justificar",
gap: "Brecha",
width: "Largura",
height: "Altura",
opacity: "Opacidade",
padding: "Preenchimento",
margin: "Margem",
radius: "Raio",
rotation: "Rotação",
flipHorizontal: "Virar horizontalmente",
flipVertical: "Virar verticalmente",
},
sidePlaceholders: {
top: "T",
right: "R",
bottom: "B",
left: "eu",
},
fontFamilies: {
inherit: "Herdar",
sansSerif: "Sem serifa",
serif: "Serif",
monospace: "Monoespaçado",
inter: "Fonte Inter",
poppins: "Fonte Poppins",
playfairDisplay: "Fonte Playfair Display",
jetBrainsMono: "Fonte JetBrains Mono",
},
fontWeights: {
thin: "Afinar",
extraLight: "Extra leve",
light: "Luz",
regular: "Regular",
medium: "Médio",
semiBold: "Semi Negrito",
bold: "Audacioso",
extraBold: "Extra Negrito",
black: "Preto",
},
textAligns: {
left: "Esquerda",
center: "Centro",
right: "Certo",
justify: "Justificar",
},
textDecorations: {
underline: "Sublinhado",
strikethrough: "Tachado",
},
textCases: {
none: "Nenhum",
uppercase: "Maiúsculas",
lowercase: "Minúsculas",
capitalize: "Capitalizar",
},
typographyDetails: {
basicsTab: "Básico",
detailsTab: "Detalhes",
decorationLabel: "Decoração",
caseLabel: "Maiúsculas e minúsculas",
},
flexDirections: {
row: "Linha",
column: "Coluna",
rowReverse: "Linha reversa",
columnReverse: "Coluna reversa",
},
justifyOptions: {
start: "Começar",
center: "Centro",
end: "Fim",
between: "Entre",
around: "Em volta",
evenly: "Uniformemente",
},
alignOptions: {
start: "Começar",
center: "Centro",
end: "Fim",
stretch: "Esticar",
baseline: "Linha de base",
},
},
designEditor: {
generationMayHaveStopped:
"A geração pode ter parado antes da criação dos arquivos. Verifique a mensagem do agente ou tente novamente.",
generationMayHaveStoppedToast:
"A geração pode ter parado antes da criação dos arquivos.",
generationStoppedRetry:
"A geração parou antes de criar arquivos. Tente novamente continuar a partir do mesmo prompt.",
generationStoppedCheckAgent:
"A geração parou antes de criar arquivos. Verifique a mensagem do agente ou tente novamente.",
notFound: "Projeto não encontrado",
backToDesigns: "Voltar aos designs",
clickToRename: "Clique para renomear",
modes: {
annotate: "Anotar",
comment: "Comentário",
edit: "Editar",
draw: "Empate",
interact: "Interact",
screens: "Telas",
},
undo: "Desfazer",
undoShortcut: "Desfazer (⌘Z)",
redo: "Refazer",
redoShortcut: "Refazer (⇧⌘Z)",
returnToCurrentScreen: "Retornar à tela atual",
openScreenOverview: "Visão geral da tela aberta",
currentScreen: "Tela atual",
screenOverview: "Visão geral da tela",
devicePreview: "Visualização do dispositivo",
devices: {
responsive: "Responsivo",
desktop: "Área de trabalho",
tablet: "Comprimido",
mobile: "Móvel",
},
zoom: "Zoom",
zoomOut: "Diminuir zoom",
zoomIn: "Ampliar",
more: "Mais",
stopPinningComments: "Pare de fixar comentários",
pinComment: "Fixar comentário",
export: "Exportar",
downloadHtml: "Baixar HTML",
downloadPng: "Baixar PNG",
downloadSvg: "Baixar SVG",
downloadZip: "Baixar ZIP",
downloadPdfAllScreens: "Baixar PDF (todas as telas)",
copyCodingHandoff: "Copiar transferência de codificação",
pickDirection: "Escolha uma direção",
variations: "variações de {{count}}",
close: "Fechar",
generating: "Gerando projeto...",
noFiles: "Nenhum arquivo ainda. Peça ao agente para gerar um design.",
tryAgain: "Tente novamente",
newPrompt: "Nova solicitação",
generateDesign: "Gerar projeto",
hideTweaks: "Ocultar ajustes",
showTweaks: "Mostrar ajustes",
tweaks: "Ajustes",
generatePlaceholder: "Descreva o que você deseja construir...",
tweaksPromptTitle: "Que ajustes você deseja?",
tweaksPlaceholder: "Opções de destaque, densidade, raio, modo escuro...",
designExport: "Exportação de projetos",
toasts: {
tweakConflict:
"Os ajustes foram alterados em outro lugar. Atualize o design antes de tentar novamente.",
tweakSaveNotDurable:
"Os ajustes ainda não foram salvos. Mantenha esta aba aberta e tente novamente.",
codingHandoffError:
"Não foi possível criar a transferência de codificação",
codingHandoffCopied: "Transferência de codificação copiada",
clipboardBlocked: "Área de transferência bloqueada",
htmlCreateError: "Não foi possível criar o download do HTML",
htmlDownloaded: "HTML baixado",
htmlExportError: "Não foi possível exportar HTML",
zipCreateError: "Não foi possível criar o download do ZIP",
zipDownloaded: "ZIP baixado",
zipExportError: "Não foi possível exportar ZIP",
openScreenPng: "Abra uma tela antes de exportar PNG",
pngCreateError: "Não foi possível criar o download do PNG",
pngDownloaded: "PNG baixado",
pngSaveError: "Não foi possível salvar PNG",
pngExportError: "Não foi possível exportar PNG",
pdfAllScreensDownloaded: "PDF baixado (todas as telas)",
openScreenSvg: "Abra uma tela antes de exportar SVG",
svgDownloaded: "SVG baixado",
svgExportError: "Não foi possível exportar SVG",
undoSkippedConcurrentEdit:
"Desfazer ignorado — outra pessoa moveu isso",
redoSkippedConcurrentEdit: "Refazer ignorado — outra pessoa moveu isso",
},
},
designSystemSetup: {
importedBrand: "Marca importada",
figmaCreateSuccess: "Sistema de design criado a partir de Figma",
figmaCreateError: "Não foi possível criar o sistema de design",
backToDesignSystems: "Voltar para sistemas de design",
continue: "Continuar para a geração",
title: "Configure seu sistema de design",
description:
"Conecte Figma, código e orientações opcionais de design.md pelo Builder DSI. Mais contexto dá ao agente um sistema mais preciso.",
figmaParsingTitle: "Iniciando indexação do Builder DSI...",
figmaParsingDescription:
"Builder extrairá tokens, componentes, recursos e orientações de uso",
uploadFig: "Conectar Figma com um arquivo .fig",
figmaSaveLocalCopy:
"Envie uma cópia local do Figma: File -> Save local copy",
websiteUrl: "Site URL",
add: "Adicionar",
githubRepository: "repositório GitHub",
privateRepoPrefix:
"Os repositórios privados precisam de um token refinado salvo como",
privateRepoSuffix: "com acesso de leitura de conteúdo.",
localCodeFiles: "Conectar arquivos de código",
dropCodeFiles:
"Solte CSS, configuração do Tailwind, arquivos de tema ou design.md aqui",
documents: "Documentos e apresentações",
documentsHelp:
"PPTX, DOCX, PDF, XLSX - guias de marca, apresentações de argumento de venda, documentos de estilo",
visualReferences: "Capturas de tela e referências visuais",
visualReferencesHelp:
"Capturas de tela de produtos, painéis de humor, imagens de inspiração",
assets: "Logotipos, fontes e outros recursos",
assetsHelp: "Logotipos SVG, fontes.woff2, arquivos de ativos de marca",
designSystem: "Sistema de projeto",
designProject: "Projeto de design",
companyPlaceholder:
"por exemplo Acme Corp - Construímos ferramentas de desenvolvedor para equipes modernas...",
notesPlaceholder:
"por exemplo Preferimos um tema escuro com alto contraste. Nossa marca usa Poppins para títulos e DM Sans para corpo. Mantenha os cantos arredondados em 12px...",
customInstructionsPlaceholder:
"por exemplo Sempre inclua uma navegação superior fixa. Prefira citações editoriais em vez de estatísticas de heróis. Nunca use fundos gradientes. Os logotipos sempre ficam no canto inferior esquerdo...",
designSystemName: "Nome do sistema de design",
brandNamePlaceholder: "Marca",
extractedSummary:
"Extraído de nós {{nodes}}, gradientes {{gradients}}, imagens {{images}}",
previewColors: "Cores",
signatureGradients: "Gradientes de assinatura",
previewTypography: "Tipografia",
headingsLabel: "Títulos:",
bodyLabel: "Corpo:",
brandBrief: "Resumo da marca",
brandBriefHelp:
"Isso orienta cada projeto gerado com este sistema. Refine-o a qualquer momento após a criação.",
creating: "Criando...",
createDesignSystem: "Criar sistema de design",
chooseDifferentFile: "Escolha um arquivo diferente",
figmaThumbnailAlt: "miniatura do arquivo Figma",
errors: {
chooseFig:
"Escolha um arquivo.fig (em Figma: Arquivo -> Salvar cópia local).",
parseFig:
"Não foi possível iniciar a indexação do Builder para esse arquivo Figma.",
enterWebsite: "Insira um site URL antes de adicioná-lo.",
websiteProtocol: "O site URLs deve começar com http:// ou https://.",
enterGithub: "Insira um repositório GitHub URL antes de adicioná-lo.",
githubUrl:
"Use um repositório GitHub completo URL, como https://github.com/org/repo.",
noSources:
"Adicione pelo menos uma fonte antes de gerar um sistema de design.",
},
sections: {
figma: {
title: "Conectar Figma",
description:
"Envie um .fig e o Builder DSI indexará tokens, componentes, recursos e orientações de marca em um sistema de design reutilizável.",
},
company: {
title: "Empresa / Marca",
description: "Nome, descrição e site",
},
code: {
title: "Conectar código",
description:
"Repositórios GitHub, arquivos de código locais ou design.md são indexados com Builder DSI.",
},
designFiles: {
title: "Arquivos de referência",
description:
"Documentos, capturas de tela e recursos de marca complementam o contexto do Builder DSI",
},
importExisting: {
title: "Importar de existente",
description:
"Bifurque um sistema de design ou extraia tokens de um projeto",
},
notes: {
title: "Notas adicionais",
description:
"Preferências de design, restrições, diretrizes da marca",
},
customInstructions: {
title: "Instruções personalizadas",
description:
"Salvo com o sistema de design. Reaplicado sempre que o agente o utiliza para gerar um design.",
},
},
colorLabels: {
accent: "Sotaque",
primary: "Primário",
secondary: "Secundário",
background: "Fundo",
surface: "Superfície",
text: "Texto",
muted: "Silenciado",
},
},
designSystems: {
deleteError: "Não foi possível excluir o sistema de design",
updateSuccess: "Sistema de design atualizado",
updateError: "Não foi possível atualizar o sistema de design",
bulkDeleteError:
"Não foi possível excluir os sistemas de design selecionados",
selectedLabel: "selecionado",
yoursTitle: "Seus sistemas de design",
newCardDescription: "Configure sua marca",
defaultBadge: "Padrão",
selectAria: "Selecione {{title}}",
currentlyDefault: "Atualmente padrão",
moreActionsAria: "Mais ações para {{title}}",
showcase: {
title: "Pontos de partida prontos para produção",
description:
"Use uma cópia com fontes vinculadas de um sistema de design público consolidado. Cada cópia inclui tokens, escalas tipográficas, espaçamento, formas, estados e atribuição reais.",
useTemplate: "Usar este sistema",
adding: "Adicionando...",
openSource: "Abrir a documentação de origem de {{title}}",
license: "Licença da fonte: {{license}}",
addSuccess: "Sistema de design adicionado",
addError: "Não foi possível adicionar o sistema de design",
descriptions: {
material3:
"Papéis claros básicos do Google, escala Roboto, espaçamento de 4 dp e sistema de formas Material.",
carbon:
"Tema White do IBM Carbon v11, tipografia IBM Plex, papéis de cor empresariais e espaçamento 2/4/8.",
primer:
"Tokens claros do GitHub Primer, Mona Sans, densidade compacta para ferramentas e espaçamento responsivo.",
},
},
actions: {
done: "Feito",
select: "Selecione",
new: "Novo sistema de design",
clearAll: "Limpe todos os sistemas de design",
selectAll: "Selecione todos os sistemas de design",
clearSelection: "Limpar seleção",
delete: "Excluir",
setDefault: "Definir como padrão",
cancel: "Cancelar",
},
deleteDialog: {
title: "Excluir sistema de design?",
description:
"Isso excluirá permanentemente este sistema de design e o desvinculará de quaisquer designs que o utilizem. Esta ação não pode ser desfeita.",
bulkTitle: "Excluir sistemas de design {{count}}?",
bulkDescription:
"Isso excluirá permanentemente os sistemas de design {{count}} e os desvinculará de quaisquer designs que os utilizem. Esta ação não pode ser desfeita.",
},
details: {
description:
"Revise os tokens salvos e atualize os detalhes que os agentes usam quando aplicam esse sistema de design.",
titleLabel: "Título",
descriptionLabel: "Descrição",
customInstructionsTitle: "Instruções personalizadas",
customInstructionsDescription:
"Orientação durável que o agente reutiliza sempre que este sistema está vinculado a um projeto.",
noCustomInstructions: "Nenhuma instrução personalizada salva ainda.",
useAsStartingPoint: "Use como ponto de partida",
saving: "Salvando...",
saveChanges: "Salvar alterações",
},
tokenPreview: {
title: "Visualização do token",
description:
"Um instantâneo das cores, tipo, espaçamento e ativos armazenados atualmente.",
colors: "Cores",
noColors: "Nenhum token de cor salvo.",
typography: "Tipografia",
details: "Detalhes",
spacing: "Espaçamento",
borders: "Fronteiras",
defaults: "Padrões",
logos: "Logotipos",
assets: "Ativos",
savedCount: "{{count}} salvo",
colorLabels: {
primary: "Primário",
secondary: "Secundário",
accent: "Sotaque",
background: "Fundo",
surface: "Superfície",
text: "Texto",
mutedText: "Texto silenciado",
},
typeLabels: {
headingFont: "Fonte do título",
bodyFont: "Fonte do corpo",
headingWeight: "Peso de direção",
bodyWeight: "Peso corporal",
},
},
empty: {
title: "Crie seu primeiro sistema de design",
description:
"Mantenha uma marca consistente em todos os seus designs com cores, tipografia e recursos compartilhados.",
},
},
},
"hi-IN": {
common: {
genericError: "कुछ गलत हो गया",
},
editPanel: {
colorInputLabel: "रंग",
properties: "गुण",
pageHelpTitle: "कैनवास पर किसी भी तत्व पर क्लिक करें",
pageHelpDescription:
"टाइपोग्राफी, रिक्ति, आकार, सीमाएँ संपादित करें और जो भी आप चुनें उसे भरें। पृष्ठ डिफ़ॉल्ट नीचे है.",
sections: {
page: "पेज",
typography: "टाइपोग्राफी",
flexLayout: "फ्लेक्स लेआउट",
layout: "लेआउट",
spacing: "अंतर",
border: "सीमा",
fill: "भरना",
},
labels: {
background: "पृष्ठभूमि",
font: "फ़ॉन्ट",
baseSize: "आधार आकार",
size: "आकार",
weight: "वज़न",
color: "रंग",
align: "संरेखित",
lineHeight: "ऊंची लाईन",
tracking: "ट्रैकिंग",
direction: "दिशा",
justify: "औचित्य",
gap: "अंतर",
width: "चौड़ाई",
height: "ऊंचाई",
opacity: "अस्पष्टता",
padding: "पैडिंग",
margin: "अंतर",
radius: "RADIUS",
rotation: "घुमाव",
flipHorizontal: "क्षैतिज पलटें",
flipVertical: "ऊर्ध्वाधर पलटें",
},
sidePlaceholders: {
top: "टी",
right: "आर",
bottom: "बी",
left: "एल",
},
fontFamilies: {
inherit: "इनहेरिट",
sansSerif: "सान्स सेरिफ़",
serif: "सेरिफ़",
monospace: "एकलस्पेस",
inter: "Inter फ़ॉन्ट",
poppins: "Poppins फ़ॉन्ट",
playfairDisplay: "Playfair Display फ़ॉन्ट",
jetBrainsMono: "JetBrains Mono फ़ॉन्ट",
},
fontWeights: {
thin: "पतला",
extraLight: "अतिरिक्त प्रकाश",
light: "रोशनी",
regular: "नियमित",
medium: "मध्यम",
semiBold: "अर्ध बोल्ड",
bold: "बोल्ड",
extraBold: "अतिरिक्त बोल्ड",
black: "काला",
},
textAligns: {
left: "बाएं",
center: "केंद्र",
right: "सही",
justify: "औचित्य",
},
textDecorations: {
underline: "रेखांकित",
strikethrough: "स्ट्राइकथ्रू",
},
textCases: {
none: "कोई नहीं",
uppercase: "बड़े अक्षर",
lowercase: "छोटे अक्षर",
capitalize: "पहला अक्षर बड़ा",
},
typographyDetails: {
basicsTab: "बुनियादी बातें",
detailsTab: "विवरण",
decorationLabel: "सजावट",
caseLabel: "बड़े/छोटे अक्षर",
},
flexDirections: {
row: "पंक्ति",
column: "स्तंभ",
rowReverse: "पंक्ति उलटी",
columnReverse: "कॉलम उल्टा",
},
justifyOptions: {
start: "शुरू",
center: "केंद्र",
end: "अंत",
between: "बीच में",
around: "आस-पास",
evenly: "के बराबर",
},
alignOptions: {
start: "शुरू",
center: "केंद्र",
end: "अंत",
stretch: "खींचना",
baseline: "आधारभूत",
},
},
designEditor: {
generationMayHaveStopped:
"फ़ाइलें बनाने से पहले जनरेशन बंद हो गया होगा. एजेंट संदेश की जाँच करें या पुनः प्रयास करें।",
generationMayHaveStoppedToast: "फ़ाइलें बनाने से पहले जनरेशन बंद हो गया होगा.",
generationStoppedRetry:
"फ़ाइलें बनाने से पहले जनरेशन बंद हो गया. उसी संकेत से जारी रखने के लिए पुनः प्रयास करें।",
generationStoppedCheckAgent:
"फ़ाइलें बनाने से पहले जनरेशन बंद हो गया. एजेंट संदेश की जाँच करें या पुनः प्रयास करें।",
notFound: "डिज़ाइन नहीं मिला",
backToDesigns: "डिज़ाइन पर वापस जाएँ",
clickToRename: "नाम बदलने के लिए क्लिक करें",
modes: {
annotate: "एनोटेट करें",
comment: "टिप्पणी",
edit: "संपादन करना",
draw: "खींचना",
interact: "Interact",
screens: "स्क्रीन",
},
undo: "पूर्ववत",
undoShortcut: "पूर्ववत करें (⌘Z)",
redo: "फिर से करना",
redoShortcut: "पुनः करें (⇧⌘Z)",
returnToCurrentScreen: "वर्तमान स्क्रीन पर लौटें",
openScreenOverview: "स्क्रीन अवलोकन खोलें",
currentScreen: "वर्तमान स्क्रीन",
screenOverview: "स्क्रीन सिंहावलोकन",
devicePreview: "डिवाइस पूर्वावलोकन",
devices: {
responsive: "उत्तरदायी",
desktop: "डेस्कटॉप",
tablet: "गोली",
mobile: "गतिमान",
},
zoom: "ज़ूम",
zoomOut: "ज़ूम आउट",
zoomIn: "ज़ूम इन",
more: "अधिक",
stopPinningComments: "टिप्पणियाँ पिन करना बंद करें",
pinComment: "टिप्पणी पिन करें",
export: "निर्यात",
downloadHtml: "HTML डाउनलोड करें",
downloadPng: "PNG डाउनलोड करें",
downloadSvg: "SVG डाउनलोड करें",
downloadZip: "ZIP डाउनलोड करें",
downloadPdfAllScreens: "PDF डाउनलोड करें (सभी स्क्रीन)",
copyCodingHandoff: "कोडिंग हैंडऑफ़ कॉपी करें",
pickDirection: "एक दिशा चुनें",
variations: "{{count}} विविधताएँ",
close: "बंद करना",
generating: "डिज़ाइन तैयार किया जा रहा है...",
noFiles: "अभी तक कोई फ़ाइल नहीं. एजेंट से डिज़ाइन तैयार करने के लिए कहें।",
tryAgain: "पुनः प्रयास करें",
newPrompt: "नया संकेत",
generateDesign: "डिज़ाइन तैयार करें",
hideTweaks: "बदलाव छिपाएँ",
showTweaks: "बदलाव दिखाएँ",
tweaks: "बदलाव",
generatePlaceholder: "वर्णन करें कि आप क्या बनाना चाहते हैं...",
tweaksPromptTitle: "आप क्या बदलाव चाहते हैं?",
tweaksPlaceholder: "एक्सेंट विकल्प, घनत्व, त्रिज्या, डार्क मोड...",
designExport: "डिज़ाइन निर्यात",
toasts: {
tweakConflict:
"बदलाव कहीं और बदल दिए गए हैं। फिर से कोशिश करने से पहले डिज़ाइन रीफ़्रेश करें।",
tweakSaveNotDurable:
"बदलाव अभी सहेजे नहीं गए हैं। इस टैब को खुला रखें और फिर से कोशिश करें।",
codingHandoffError: "कोडिंग हैंडऑफ़ नहीं बनाया जा सका",
codingHandoffCopied: "कोडिंग हैंडऑफ़ कॉपी किया गया",
clipboardBlocked: "क्लिपबोर्ड अवरुद्ध",
htmlCreateError: "HTML डाउनलोड नहीं बनाया जा सका",
htmlDownloaded: "HTML डाउनलोड किया गया",
htmlExportError: "HTML निर्यात नहीं किया जा सका",
zipCreateError: "ZIP डाउनलोड नहीं बनाया जा सका",
zipDownloaded: "ZIP डाउनलोड किया गया",
zipExportError: "ZIP निर्यात नहीं किया जा सका",
openScreenPng: "PNG निर्यात करने से पहले एक स्क्रीन खोलें",
pngCreateError: "PNG डाउनलोड नहीं बनाया जा सका",
pngDownloaded: "PNG डाउनलोड किया गया",
pngSaveError: "PNG को सहेजा नहीं जा सका",
pngExportError: "PNG निर्यात नहीं किया जा सका",
pdfAllScreensDownloaded: "PDF डाउनलोड किया गया (सभी स्क्रीन)",
openScreenSvg: "SVG निर्यात करने से पहले एक स्क्रीन खोलें",
svgDownloaded: "SVG डाउनलोड किया गया",
svgExportError: "SVG निर्यात नहीं किया जा सका",
undoSkippedConcurrentEdit:
"पूर्ववत करना छोड़ दिया गया — किसी और ने इसे स्थानांतरित कर दिया",
redoSkippedConcurrentEdit:
"फिर से करना छोड़ दिया गया — किसी और ने इसे स्थानांतरित कर दिया",
},
},
designSystemSetup: {
importedBrand: "आयातित ब्रांड",
figmaCreateSuccess: "Figma से डिज़ाइन सिस्टम बनाया गया",
figmaCreateError: "डिज़ाइन सिस्टम नहीं बनाया जा सका",
backToDesignSystems: "डिज़ाइन सिस्टम पर वापस जाएँ",
continue: "पीढ़ी तक जारी रखें",
title: "अपना डिज़ाइन सिस्टम सेट करें",
description:
"Figma, कोड और वैकल्पिक design.md मार्गदर्शन को Builder DSI से कनेक्ट करें. अधिक संदर्भ एजेंट को अधिक सटीक सिस्टम देता है.",
figmaParsingTitle: "Builder DSI indexing शुरू की जा रही है...",
figmaParsingDescription:
"Builder टोकन, कंपोनेंट, एसेट और उपयोग मार्गदर्शन निकालेगा",
uploadFig: "Figma .fig फ़ाइल कनेक्ट करें",
figmaSaveLocalCopy: "Figma स्थानीय कॉपी अपलोड करें: File -> Save local copy",
websiteUrl: "वेबसाइट URL",
add: "जोड़ना",
githubRepository: "GitHub रिपॉजिटरी",
privateRepoPrefix:
"निजी रेपो को एक बढ़िया टोकन के रूप में सहेजे जाने की आवश्यकता होती है",
privateRepoSuffix: "सामग्री पढ़ने की पहुंच के साथ।",
localCodeFiles: "कोड फ़ाइलें कनेक्ट करें",
dropCodeFiles: "CSS, Tailwind कॉन्फ़िग, थीम फ़ाइलें या design.md यहां छोड़ें",
documents: "दस्तावेज़ एवं प्रस्तुतियाँ",
documentsHelp: "PPTX, DOCX, PDF, XLSX - ब्रांड गाइड, पिच डेक, स्टाइल डॉक्स",
visualReferences: "स्क्रीनशॉट और दृश्य संदर्भ",
visualReferencesHelp: "उत्पाद स्क्रीनशॉट, मूड बोर्ड, प्रेरणा चित्र",
assets: "लोगो, फ़ॉन्ट और अन्य संपत्तियाँ",
assetsHelp: "SVG लोगो,.woff2 फ़ॉन्ट, ब्रांड संपत्ति फ़ाइलें",
designSystem: "डिज़ाइन प्रणाली",
designProject: "डिज़ाइन परियोजना",
companyPlaceholder:
"जैसे एक्मे कॉर्प - हम आधुनिक टीमों के लिए डेवलपर टूल बनाते हैं...",
notesPlaceholder:
"जैसे हम उच्च कंट्रास्ट वाली डार्क थीम पसंद करते हैं। हमारा ब्रांड शीर्षकों के लिए Poppins और मुख्य भाग के लिए DM Sans का उपयोग करता है। कोनों को 12px पर गोल रखें...",
customInstructionsPlaceholder:
"जैसे हमेशा एक स्टिकी टॉप नेवी शामिल करें। नायक आँकड़ों के स्थान पर संपादकीय पुल उद्धरणों को प्राथमिकता दें। कभी भी ग्रेडिएंट पृष्ठभूमि का उपयोग न करें. लोगो हमेशा नीचे-बाएँ जाते हैं...",
designSystemName: "डिज़ाइन सिस्टम का नाम",
brandNamePlaceholder: "ब्रांड का नाम",
extractedSummary:
"{{nodes}} नोड्स, {{gradients}} ग्रेडिएंट्स, {{images}} छवियों से निकाला गया",
previewColors: "रंग",
signatureGradients: "हस्ताक्षर ग्रेडियेंट",
previewTypography: "टाइपोग्राफी",
headingsLabel: "शीर्षक:",
bodyLabel: "शरीर:",
brandBrief: "ब्रांड संक्षिप्त",
brandBriefHelp:
"यह इस प्रणाली से उत्पन्न प्रत्येक डिज़ाइन का मार्गदर्शन करता है। बनाने के बाद इसे कभी भी परिष्कृत करें।",
creating: "बनाया जा रहा है...",
createDesignSystem: "डिज़ाइन सिस्टम बनाएं",
chooseDifferentFile: "कोई भिन्न फ़ाइल चुनें",
figmaThumbnailAlt: "Figma फ़ाइल थंबनेल",
errors: {
chooseFig:
"कृपया एक.fig फ़ाइल चुनें (Figma में: फ़ाइल -> स्थानीय प्रतिलिपि सहेजें)।",
parseFig: "उस Figma file के लिए Builder indexing शुरू नहीं हो सकी।",
enterWebsite: "इसे जोड़ने से पहले एक वेबसाइट URL दर्ज करें।",
websiteProtocol: "वेबसाइट URLs http:// या https:// से शुरू होनी चाहिए।",
enterGithub: "इसे जोड़ने से पहले एक GitHub रिपॉजिटरी URL दर्ज करें।",
githubUrl:
"https://github.com/org/repo जैसे पूर्ण GitHub रिपॉजिटरी URL का उपयोग करें।",
noSources: "डिज़ाइन सिस्टम तैयार करने से पहले कम से कम एक स्रोत जोड़ें।",
},
sections: {
figma: {
title: "Figma कनेक्ट करें",
description:
".fig अपलोड करें और Builder DSI टोकन, कंपोनेंट, एसेट और ब्रांड मार्गदर्शन को पुन: उपयोग योग्य डिज़ाइन सिस्टम में index करेगा.",
},
company: {
title: "कंपनी/ब्रांड",
description: "नाम, विवरण और वेबसाइट",
},
code: {
title: "कोड कनेक्ट करें",
description:
"GitHub रिपॉज़िटरी, स्थानीय कोड फ़ाइलें या design.md Builder DSI से index होते हैं.",
},
designFiles: {
title: "संदर्भ फ़ाइलें",
description:
"दस्तावेज़, स्क्रीनशॉट और ब्रांड एसेट Builder DSI संदर्भ को मजबूत करते हैं",
},
importExisting: {
title: "मौजूदा से आयात करें",
description:
"किसी डिज़ाइन सिस्टम को फोर्क करना या किसी प्रोजेक्ट से टोकन निकालना",
},
notes: {
title: "अतिरिक्त टिप्पणी",
description: "डिज़ाइन प्राथमिकताएँ, बाधाएँ, ब्रांड दिशानिर्देश",
},
customInstructions: {
title: "कस्टम निर्देश",
description:
"डिज़ाइन सिस्टम के साथ सहेजा गया. हर बार डिज़ाइन तैयार करने के लिए एजेंट द्वारा इसका उपयोग करने पर इसे दोबारा लागू किया जाता है।",
},
},
colorLabels: {
accent: "लहज़ा",
primary: "प्राथमिक",
secondary: "माध्यमिक",
background: "पृष्ठभूमि",
surface: "सतह",
text: "मूलपाठ",
muted: "म्यूट किए गए",
},
},
designSystems: {
deleteError: "डिज़ाइन सिस्टम को हटाया नहीं जा सका",
updateSuccess: "डिज़ाइन सिस्टम अपडेट किया गया",
updateError: "डिज़ाइन सिस्टम अपडेट नहीं किया जा सका",
bulkDeleteError: "चयनित डिज़ाइन सिस्टम को हटाया नहीं जा सका",
selectedLabel: "चयनित",
yoursTitle: "आपके डिज़ाइन सिस्टम",
newCardDescription: "अपना ब्रांड स्थापित करें",
defaultBadge: "गलती करना",
selectAria: "{{title}} चुनें",
currentlyDefault: "वर्तमान में डिफ़ॉल्ट",
moreActionsAria: "{{title}} के लिए और अधिक कार्रवाइयां",
showcase: {
title: "प्रोडक्शन के लिए तैयार शुरुआती बिंदु",
description:
"स्थापित सार्वजनिक डिज़ाइन सिस्टम की स्रोत-लिंक्ड कॉपी उपयोग करें। हर कॉपी में वास्तविक टोकन, टाइप स्केल, स्पेसिंग, आकार, स्टेट मार्गदर्शन और श्रेय शामिल हैं।",
useTemplate: "इस सिस्टम का उपयोग करें",
adding: "जोड़ा जा रहा है...",
openSource: "{{title}} का स्रोत दस्तावेज़ खोलें",
license: "स्रोत लाइसेंस: {{license}}",
addSuccess: "डिज़ाइन सिस्टम जोड़ा गया",
addError: "डिज़ाइन सिस्टम नहीं जोड़ा जा सका",
descriptions: {
material3:
"Google की बेसलाइन लाइट भूमिकाएँ, Roboto टाइप स्केल, 4 dp स्पेसिंग और Material आकार सिस्टम।",
carbon:
"IBM Carbon v11 White थीम, IBM Plex, एंटरप्राइज़ रंग भूमिकाएँ और 2/4/8 स्पेसिंग।",
primer:
"GitHub Primer लाइट टोकन, Mona Sans, कॉम्पैक्ट डेवलपर-टूल घनत्व और रिस्पॉन्सिव स्पेसिंग।",
},
},
actions: {
done: "हो गया",
select: "चुनना",
new: "नई डिज़ाइन प्रणाली",
clearAll: "सभी डिज़ाइन सिस्टम साफ़ करें",
selectAll: "सभी डिज़ाइन सिस्टम का चयन करें",
clearSelection: "स्पष्ट चयन",
delete: "मिटाना",
setDefault: "डिफाल्ट के रूप में सेट",
cancel: "रद्द करना",
},
deleteDialog: {
title: "डिज़ाइन सिस्टम हटाएँ?",
description:
"यह इस डिज़ाइन सिस्टम को स्थायी रूप से हटा देगा और इसका उपयोग करने वाले किसी भी डिज़ाइन से इसे अनलिंक कर देगा। इस एक्शन को वापस नहीं किया जा सकता।",
bulkTitle: "{{count}} डिज़ाइन सिस्टम हटाएं?",
bulkDescription:
"यह {{count}} डिज़ाइन सिस्टम को स्थायी रूप से हटा देगा और उनका उपयोग करने वाले किसी भी डिज़ाइन से उन्हें अनलिंक कर देगा। इस एक्शन को वापस नहीं किया जा सकता।",
},
details: {
description:
"सहेजे गए टोकन की समीक्षा करें और इस डिज़ाइन प्रणाली को लागू करते समय एजेंटों द्वारा उपयोग किए जाने वाले विवरण को अपडेट करें।",
titleLabel: "शीर्षक",
descriptionLabel: "विवरण",
customInstructionsTitle: "कस्टम निर्देश",
customInstructionsDescription:
"जब भी यह सिस्टम किसी डिज़ाइन से जुड़ा होता है तो एजेंट टिकाऊ मार्गदर्शन का पुन: उपयोग करता है।",
noCustomInstructions: "अभी तक कोई कस्टम निर्देश सहेजा नहीं गया है.",
useAsStartingPoint: "आरंभिक बिंदु के रूप में उपयोग करें",
saving: "सहेजा जा रहा है...",
saveChanges: "परिवर्तनों को सुरक्षित करें",
},
tokenPreview: {
title: "टोकन पूर्वावलोकन",
description:
"वर्तमान में संग्रहीत रंग, प्रकार, रिक्ति और संपत्तियों का एक स्नैपशॉट।",
colors: "रंग",
noColors: "कोई रंग टोकन सहेजा नहीं गया.",
typography: "टाइपोग्राफी",
details: "विवरण",
spacing: "अंतर",
borders: "सीमाएँ",
defaults: "चूक",
logos: "लोगो",
assets: "संपत्ति",
savedCount: "{{count}} सहेजा गया",
colorLabels: {
primary: "प्राथमिक",
secondary: "माध्यमिक",
accent: "लहज़ा",
background: "पृष्ठभूमि",
surface: "सतह",
text: "मूलपाठ",
mutedText: "म्यूट किया गया पाठ",
},
typeLabels: {
headingFont: "शीर्षक फ़ॉन्ट",
bodyFont: "शरीर का अगला हिस्सा",
headingWeight: "शीर्षक भार",
bodyWeight: "शरीर का वजन",
},
},
empty: {
title: "अपना पहला डिज़ाइन सिस्टम बनाएं",
description:
"साझा रंगों, टाइपोग्राफी और संपत्तियों के साथ अपने सभी डिज़ाइनों में लगातार ब्रांडिंग बनाए रखें।",
},
},
},
"ar-SA": {
common: {
genericError: "حدث خطأ ما",
},
editPanel: {
colorInputLabel: "لون",
properties: "ملكيات",
pageHelpTitle: "انقر فوق أي عنصر على اللوحة القماشية",
pageHelpDescription:
"تحرير الطباعة، والتباعد، والتحجيم، والحدود وملء ما تحدده. الإعدادات الافتراضية للصفحة أدناه.",
sections: {
page: "صفحة",
typography: "الطباعة",
flexLayout: "تخطيط مرن",
layout: "تَخطِيط",
spacing: "تباعد",
border: "حدود",
fill: "يملأ",
},
labels: {
background: "خلفية",
font: "الخط",
baseSize: "حجم القاعدة",
size: "مقاس",
weight: "وزن",
color: "لون",
align: "محاذاة",
lineHeight: "ارتفاع الخط",
tracking: "تتبع",
direction: "اتجاه",
justify: "يبرر",
gap: "فجوة",
width: "عرض",
height: "ارتفاع",
opacity: "العتامة",
padding: "حشوة",
margin: "هامِش",
radius: "نصف القطر",
rotation: "دوران",
flipHorizontal: "قلب أفقي",
flipVertical: "قلب عمودي",
},
sidePlaceholders: {
top: "ت",
right: "ر",
bottom: "ب",
left: "ل",
},
fontFamilies: {
inherit: "يرث",
sansSerif: "بلا شريف",
serif: "شريف",
monospace: "مونوسبيس",
inter: "خط Inter",
poppins: "خط Poppins",
playfairDisplay: "خط Playfair Display",
jetBrainsMono: "خط JetBrains Mono",
},
fontWeights: {
thin: "رفيع",
extraLight: "ضوء إضافي",
light: "ضوء",
regular: "عادي",
medium: "واسطة",
semiBold: "شبه جريئة",
bold: "عريض",
extraBold: "جريئة اضافية",
black: "أسود",
},
textAligns: {
left: "غادر",
center: "مركز",
right: "يمين",
justify: "يبرر",
},
textDecorations: {
underline: "تسطير",
strikethrough: "يتوسطه خط",
},
textCases: {
none: "بلا",
uppercase: "أحرف كبيرة",
lowercase: "أحرف صغيرة",
capitalize: "بدء الكلمات بحرف كبير",
},
typographyDetails: {
basicsTab: "أساسيات",
detailsTab: "التفاصيل",
decorationLabel: "زخرفة",
caseLabel: "حالة الأحرف",
},
flexDirections: {
row: "صف",
column: "عمود",
rowReverse: "عكس الصف",
columnReverse: "عكس العمود",
},
justifyOptions: {
start: "يبدأ",
center: "مركز",
end: "نهاية",
between: "بين",
around: "حول",
evenly: "بالتساوي",
},
alignOptions: {
start: "يبدأ",
center: "مركز",
end: "نهاية",
stretch: "تمتد",
baseline: "خط الأساس",
},
},
designEditor: {
generationMayHaveStopped:
"ربما توقف الإنشاء قبل إنشاء الملفات. تحقق من رسالة الوكيل أو حاول مرة أخرى.",
generationMayHaveStoppedToast: "ربما توقف الإنشاء قبل إنشاء الملفات.",
generationStoppedRetry:
"توقف الإنشاء قبل إنشاء الملفات. حاول مرة أخرى للمتابعة من نفس المطالبة.",
generationStoppedCheckAgent:
"توقف الإنشاء قبل إنشاء الملفات. تحقق من رسالة الوكيل أو حاول مرة أخرى.",
notFound: "لم يتم العثور على التصميم",
backToDesigns: "العودة إلى التصاميم",
clickToRename: "انقر لإعادة التسمية",
modes: {
annotate: "تعليق توضيحي",
comment: "تعليق",
edit: "يحرر",
draw: "يرسم",
interact: "Interact",
screens: "الشاشات",
},
undo: "تراجع",
undoShortcut: "تراجع (⌘Z)",
redo: "إعادة",
redoShortcut: "إعادة (⇧⌘Z)",
returnToCurrentScreen: "العودة إلى الشاشة الحالية",
openScreenOverview: "نظرة عامة على الشاشة المفتوحة",
currentScreen: "الشاشة الحالية",
screenOverview: "نظرة عامة على الشاشة",
devicePreview: "معاينة الجهاز",
devices: {
responsive: "مستجيب",
desktop: "سطح المكتب",
tablet: "قرص",
mobile: "متحرك",
},
zoom: "تكبير",
zoomOut: "تصغير",
zoomIn: "تكبير",
more: "أكثر",
stopPinningComments: "التوقف عن تثبيت التعليقات",
pinComment: "تثبيت التعليق",
export: "يصدّر",
downloadHtml: "تحميل HTML",
downloadPng: "تحميل PNG",
downloadSvg: "تحميل SVG",
downloadZip: "تحميل ZIP",
downloadPdfAllScreens: "تحميل PDF (كل الشاشات)",
copyCodingHandoff: "نسخ عملية الترميز",
pickDirection: "اختر الاتجاه",
variations: "الاختلافات {{count}}",
close: "يغلق",
generating: "جاري إنشاء التصميم...",
noFiles: "لا توجد ملفات حتى الآن. اطلب من الوكيل إنشاء تصميم.",
tryAgain: "حاول ثانية",
newPrompt: "موجه جديد",
generateDesign: "إنشاء التصميم",
hideTweaks: "إخفاء التعديلات",
showTweaks: "إظهار القرص",
tweaks: "القرص",
generatePlaceholder: "وصف ما تريد بناءه...",
tweaksPromptTitle: "ما هي التعديلات التي تريدها؟",
tweaksPlaceholder: "خيارات اللكنة والكثافة ونصف القطر والوضع المظلم...",
designExport: "تصدير التصميم",
toasts: {
tweakConflict:
"تم تغيير التعديلات في مكان آخر. حدّث التصميم قبل المحاولة مرة أخرى.",
tweakSaveNotDurable:
"لم يتم حفظ التعديلات بعد. أبقِ علامة التبويب هذه مفتوحة وحاول مرة أخرى.",
codingHandoffError: "تعذر إنشاء عملية تسليم الترميز",
codingHandoffCopied: "تم نسخ عملية تسليم الترميز",
clipboardBlocked: "تم حظر الحافظة",
htmlCreateError: "تعذر إنشاء تنزيل HTML",
htmlDownloaded: "تم تنزيل HTML",
htmlExportError: "تعذر تصدير HTML",
zipCreateError: "لا يمكن إنشاء تنزيل ZIP",
zipDownloaded: "تم تنزيل ZIP",
zipExportError: "تعذر تصدير ZIP",
openScreenPng: "افتح الشاشة قبل تصدير PNG",
pngCreateError: "تعذر إنشاء تنزيل PNG",
pngDownloaded: "تم تنزيل PNG",
pngSaveError: "تعذر حفظ PNG",
pngExportError: "تعذر تصدير PNG",
pdfAllScreensDownloaded: "تم تنزيل PDF (كل الشاشات)",
openScreenSvg: "افتح الشاشة قبل تصدير SVG",
svgDownloaded: "تم تنزيل SVG",
svgExportError: "تعذر تصدير SVG",
undoSkippedConcurrentEdit: "تم تخطي التراجع — قام شخص آخر بنقله",
redoSkippedConcurrentEdit: "تم تخطي الإعادة — قام شخص آخر بنقله",
},
},
designSystemSetup: {
importedBrand: "ماركة مستوردة",
figmaCreateSuccess: "تم إنشاء نظام التصميم من Figma",
figmaCreateError: "لا يمكن إنشاء نظام التصميم",
backToDesignSystems: "العودة إلى أنظمة التصميم",
continue: "الاستمرار في الجيل",
title: "قم بإعداد نظام التصميم الخاص بك",
description:
"اربط Figma والكود وإرشادات design.md الاختيارية عبر Builder DSI. كلما زاد السياق، حصل الوكيل على نظام أدق.",
figmaParsingTitle: "جارٍ بدء فهرسة Builder DSI...",
figmaParsingDescription:
"سيستخرج Builder الرموز والمكونات والأصول وإرشادات الاستخدام",
uploadFig: "ربط Figma بملف .fig",
figmaSaveLocalCopy: "حمّل نسخة Figma محلية: File -> Save local copy",
websiteUrl: "موقع URL",
add: "يضيف",
githubRepository: "مستودع GitHub",
privateRepoPrefix:
"تحتاج عمليات إعادة الشراء الخاصة إلى رمز مميز محفوظ باسم",
privateRepoSuffix: "مع محتويات الوصول للقراءة.",
localCodeFiles: "ربط ملفات الكود",
dropCodeFiles:
"أسقط CSS أو إعدادات Tailwind أو ملفات السمة أو design.md هنا",
documents: "الوثائق والعروض التقديمية",
documentsHelp:
"PPTX، DOCX، PDF، XLSX - أدلة العلامة التجارية، والعروض الترويجية، ومستندات النمط",
visualReferences: "لقطات الشاشة والمراجع المرئية",
visualReferencesHelp: "لقطات شاشة للمنتج ولوحات مزاجية وصور ملهمة",
assets: "الشعارات والخطوط والأصول الأخرى",
assetsHelp: "شعارات SVG وخطوط.woff2 وملفات أصول العلامة التجارية",
designSystem: "نظام التصميم",
designProject: "مشروع التصميم",
companyPlaceholder:
"على سبيل المثال Acme Corp - نحن نبني أدوات التطوير للفرق الحديثة...",
notesPlaceholder:
"على سبيل المثال نحن نفضل المظهر الداكن ذو التباين العالي. تستخدم علامتنا التجارية Poppins للعناوين وDM Sans للجسم. حافظ على الزوايا مستديرة عند 12 بكسل...",
customInstructionsPlaceholder:
"على سبيل المثال قم دائمًا بتضمين التنقل العلوي اللزج. تفضل الاقتباسات التحريرية على إحصائيات البطل. لا تستخدم أبدًا الخلفيات المتدرجة. الشعارات دائما تكون في أسفل اليسار...",
designSystemName: "اسم نظام التصميم",
brandNamePlaceholder: "اسم العلامة التجارية",
extractedSummary:
"مستخرج من عقد {{nodes}}، وتدرجات {{gradients}}، وصور {{images}}",
previewColors: "الألوان",
signatureGradients: "تدرجات التوقيع",
previewTypography: "الطباعة",
headingsLabel: "العناوين:",
bodyLabel: "جسم:",
brandBrief: "ملخص العلامة التجارية",
brandBriefHelp:
"وهذا يوجه كل تصميم تم إنشاؤه باستخدام هذا النظام. قم بتحسينه في أي وقت بعد الإنشاء.",
creating: "جارٍ الإنشاء...",
createDesignSystem: "إنشاء نظام التصميم",
chooseDifferentFile: "اختر ملفًا مختلفًا",
figmaThumbnailAlt: "الصورة المصغرة للملف Figma",
errors: {
chooseFig:
"الرجاء اختيار ملف.fig (في Figma: ملف -> حفظ النسخة المحلية).",
parseFig: "تعذر بدء فهرسة Builder لملف Figma هذا.",
enterWebsite: "أدخل موقع URL قبل إضافته.",
websiteProtocol: "يجب أن يبدأ موقع الويب URLs بـ http:// أو https://.",
enterGithub: "أدخل مستودع GitHub URL قبل إضافته.",
githubUrl:
"استخدم مستودع GitHub الكامل URL، مثل https://github.com/org/repo.",
noSources: "أضف مصدرًا واحدًا على الأقل قبل إنشاء نظام التصميم.",
},
sections: {
figma: {
title: "ربط Figma",
description:
"حمّل .fig وسيقوم Builder DSI بفهرسة الرموز والمكونات والأصول وإرشادات العلامة في نظام تصميم قابل لإعادة الاستخدام.",
},
company: {
title: "الشركة / العلامة التجارية",
description: "الاسم والوصف والموقع",
},
code: {
title: "ربط الكود",
description:
"تتم فهرسة مستودعات GitHub أو ملفات الكود المحلية أو design.md عبر Builder DSI.",
},
designFiles: {
title: "ملفات مرجعية",
description:
"تضيف المستندات ولقطات الشاشة وأصول العلامة سياقًا لفهرسة Builder DSI",
},
importExisting: {
title: "الاستيراد من الموجود",
description: "شوكة نظام التصميم أو استخراج الرموز المميزة من المشروع",
},
notes: {
title: "ملاحظات إضافية",
description:
"تفضيلات التصميم والقيود والمبادئ التوجيهية للعلامة التجارية",
},
customInstructions: {
title: "تعليمات مخصصة",
description:
"تم الحفظ بنظام التصميم. يتم إعادة تطبيقه في كل مرة يستخدمه الوكيل لإنشاء تصميم.",
},
},
colorLabels: {
accent: "لهجة",
primary: "أساسي",
secondary: "ثانوي",
background: "خلفية",
surface: "سطح",
text: "نص",
muted: "كتم الصوت",
},
},
designSystems: {
deleteError: "لا يمكن حذف نظام التصميم",
updateSuccess: "تم تحديث نظام التصميم",
updateError: "لا يمكن تحديث نظام التصميم",
bulkDeleteError: "لا يمكن حذف أنظمة التصميم المحددة",
selectedLabel: "مختارة",
yoursTitle: "أنظمة التصميم الخاصة بك",
newCardDescription: "قم بإعداد علامتك التجارية",
defaultBadge: "تقصير",
selectAria: "حدد {{title}}",
currentlyDefault: "الافتراضي حاليا",
moreActionsAria: "المزيد من الإجراءات لـ {{title}}",
showcase: {
title: "نقاط بداية جاهزة للإنتاج",
description:
"استخدم نسخة مرتبطة بالمصدر من نظام تصميم عام راسخ. تتضمن كل نسخة رموزا ومقاييس كتابة ومسافات وأشكالا وإرشادات حالات ونسبا حقيقية.",
useTemplate: "استخدام هذا النظام",
adding: "جار الإضافة...",
openSource: "فتح وثائق مصدر {{title}}",
license: "رخصة المصدر: {{license}}",
addSuccess: "تمت إضافة نظام التصميم",
addError: "تعذرت إضافة نظام التصميم",
descriptions: {
material3:
"أدوار Google الأساسية الفاتحة ومقياس Roboto ومسافات 4 dp ونظام أشكال Material.",
carbon:
"سمة IBM Carbon v11 White وخط IBM Plex وأدوار ألوان المؤسسات ومسافات 2/4/8.",
primer:
"رموز GitHub Primer الفاتحة وخط Mona Sans وكثافة أدوات المطورين المدمجة والمسافات المتجاوبة.",
},
},
actions: {
done: "منتهي",
select: "يختار",
new: "نظام التصميم الجديد",
clearAll: "مسح كافة أنظمة التصميم",
selectAll: "تحديد كافة أنظمة التصميم",
clearSelection: "مسح التحديد",
delete: "يمسح",
setDefault: "تعيين كافتراضي",
cancel: "يلغي",
},
deleteDialog: {
title: "هل تريد حذف نظام التصميم؟",
description:
"سيؤدي هذا إلى حذف نظام التصميم هذا نهائيًا وإلغاء ربطه بأي تصميمات تستخدمه. لا يمكن التراجع عن هذا الإجراء.",
bulkTitle: "هل تريد حذف أنظمة التصميم {{count}}؟",
bulkDescription:
"سيؤدي هذا إلى حذف أنظمة التصميم {{count}} نهائيًا وإلغاء ربطها بأي تصميمات تستخدمها. لا يمكن التراجع عن هذا الإجراء.",
},
details: {
description:
"راجع الرموز المميزة المحفوظة وقم بتحديث التفاصيل التي يستخدمها الوكلاء عند تطبيق نظام التصميم هذا.",
titleLabel: "عنوان",
descriptionLabel: "وصف",
customInstructionsTitle: "تعليمات مخصصة",
customInstructionsDescription:
"إرشادات متينة يعيد الوكيل استخدامها عندما يرتبط هذا النظام بالتصميم.",
noCustomInstructions: "لم يتم حفظ أي تعليمات مخصصة حتى الآن.",
useAsStartingPoint: "استخدم كنقطة انطلاق",
saving: "توفير...",
saveChanges: "حفظ التغييرات",
},
tokenPreview: {
title: "معاينة الرمز المميز",
description: "لقطة للألوان والنوع والتباعد والأصول المخزنة حاليًا.",
colors: "الألوان",
noColors: "لم يتم حفظ أي رموز ملونة.",
typography: "الطباعة",
details: "تفاصيل",
spacing: "تباعد",
borders: "الحدود",
defaults: "الافتراضيات",
logos: "الشعارات",
assets: "أصول",
savedCount: "تم حفظ {{count}}",
colorLabels: {
primary: "أساسي",
secondary: "ثانوي",
accent: "لهجة",
background: "خلفية",
surface: "سطح",
text: "نص",
mutedText: "نص مكتوم",
},
typeLabels: {
headingFont: "خط العنوان",
bodyFont: "خط الجسم",
headingWeight: "وزن العنوان",
bodyWeight: "وزن الجسم",
},
},
empty: {
title: "إنشاء نظام التصميم الأول الخاص بك",
description:
"حافظ على اتساق العلامة التجارية عبر جميع تصميماتك باستخدام الألوان والطباعة والأصول المشتركة.",
},
},
},
} satisfies Record, PartialMessages>;
const designRawLiteralOverrides = {
"zh-TW": {},
"zh-CN": {
pages: {
presentExitHint: "按 Esc 退出",
notFoundDescription: "您正在寻找的页面不存在。",
notFoundBackToDesigns: "返回设计",
},
designEditor: {
exportHtml: "导出HTML",
exportPdf: "导出PDF",
designTools: "Design 工具",
drawOnCanvas: "在画布上绘制",
dropCommentPin: "删除评论图钉",
presentInThisTab: "在此选项卡中",
presentFullscreen: "全屏",
presentNewTab: "新标签页",
addTweaks: "添加调整",
addTweakControls: "添加调整控件",
closeTweaks: "关闭调整",
tweaksDocs: "了解详情。",
noTweakControls: "还没有调整控件。",
extensions: "扩展",
addExtension: "扩展",
extensionsDocs: "文档",
extensionsPromptTitle: "这个扩展应该做什么?",
extensionsPlaceholder: "样式工具、选择辅助、画板操作...",
extensionsEmptyTitle: "还没有编辑器扩展",
extensionsEmptyDescription:
"构建一个小型检查器扩展,用来读取所选元素、调用操作,或让代理更新画板。",
extensionsAvailable: "可用",
extensionsInstall: "添加",
extensionsInstallError: "安装扩展失败",
designPreview: "Design 预览",
presentMode: "呈现模式",
useThisDirection: "使用这个方向",
variantHandoffHelp: "将此摘要粘贴到您的编码代理中以继续。",
summaryCopied: "摘要已复制",
selectSummaryToCopy: "选择摘要以复制",
dismiss: "关闭",
copied: "已复制",
copySummary: "复制摘要",
closeAllTabs: "关闭全部",
closeOtherTabs: "关闭其他",
closeTab: "关闭",
fitToScreen: "适合屏幕",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Assets图像选择器",
loadingAssetsPicker: "加载 Assets 选择器",
assetAdded: "添加资产",
assetsNoImageUrl: "Assets 未返回图片 URL。",
failedToUploadFile: "上传文件失败",
designSystem: "Design系统",
noDesignSystem: "没有设计系统",
newDesignSystem: "新",
addAttachment: "添加",
removeAttachment: "删除{{name}}",
uploadFile: "上传文件",
uploadFileDescription: "图像、PDF、文本/代码",
pickAsset: "选择资产",
pickAssetDescription: "浏览或生成图像",
},
visualEditor: {
typeAnnotation: "键入注释...",
typeAnnotationFancy: "键入注释...",
typeAnywhere: "随处输入",
typeAnywhereOnCanvas: "在画布上的任意位置键入",
clearAll: "全部清除",
exitDrawMode: "退出绘图模式",
undoStroke: "撤消行程",
redoStroke: "重做行程",
tellAgentWhatToDo: "告诉代理人该怎么做...",
clickToDropCommentPin: "单击任意位置即可放置评论图钉",
editDesign: "编辑设计",
escToExit: "Esc 退出",
tellAgentWhatToChange: "告诉代理要更改什么...",
changesSaveWhenReconnected: "重新连接时将保存更改",
changesDiscarded: "部分更改因文件不存在而无法保存,已被丢弃。",
offline: "离线",
saving: "正在保存...",
clearedAllAnnotations: "已清除所有批注",
annotationsDiscardedOnViewChange:
"离开此视图时,{{count}} 条未发送的批注已被丢弃。",
undo: "撤消",
send: "发送",
sendingDrawing: "正在发送…",
commentSent: "评论已发送",
comment: "评论",
},
home: {
pageTitle: "Design",
searchPlaceholder: "搜索设计...",
newDesign: "新Design",
newDesignLower: "新设计",
createDesignProject: "创建一个设计项目",
openingDesign: "正在打开设计...",
skipToEditor: "直接进入编辑器",
failedToCreateDesign: "无法创建设计",
describeBuild: "描述您想要构建的内容...",
selected: "已选择 {{count}}",
clearVisibleSelection: "清晰可见的选择",
selectVisibleDesigns: "选择可见的设计",
clearSelection: "清除选择",
delete: "删除",
selectDesign: "选择{{title}}",
actionsForDesign: "{{title}} 的操作",
rename: "重命名",
duplicate: "重复",
renameDesign: "重命名设计",
designName: "Design 名称",
cancel: "取消",
save: "保存",
deleteDesignTitle: "删除Design?",
deleteDesignsTitle: "删除 {{count}} Design?",
deleteSingleDesignsTitle: "删除 {{count}} Design?",
deleteDesignDescription:
"这将永久删除该设计及其所有文件。此操作无法撤消。",
deleteDesignsDescription:
"这将永久删除这些 {{count}} 设计及其所有文件。此操作无法撤消。",
untitledDesign: "无标题Design",
createFirstDesign: "创建您的第一个设计",
pickStartingPoint: "选择一个起点或编写您自己的提示。",
starterSaas: "SaaS 登陆页面",
starterDashboard: "仪表板",
starterPricing: "定价页面",
starterMobile: "移动应用程序",
prototype: "原型",
other: "其他",
designPreview: "Design 预览",
},
templatesPage: {
title: "营销模板",
description:
"用于发布、广告、演示文稿、活动和 PDF 讲义的尺寸可编辑的入门设计。",
brand: "品牌: {{title}}",
useTemplate: "使用模板",
socialSquare: "社交广场",
formatQuestion: "这个 {{title}} 应该面向哪种格式?",
formatHeader: "格式",
desktop: "桌面",
mobile: "移动端",
tablet: "平板",
},
routeTitles: {
notFound: "未找到 - Design",
designSystems: "Design 系统",
designSystemSetup: "Design 系统设置",
designEditor: "Design 编辑器",
designTemplates: "Design 模板",
toolDesign: "工具 — Design",
extensionsDesign: "扩展 — Design",
agentObservability: "代理可观测性",
designPreview: "Design 预览",
settingsDesign: "设置 — Design",
teamDesign: "团队 - Design",
},
},
"es-ES": {
pages: {
presentExitHint: "Presione Esc para salir",
notFoundDescription: "La página que buscas no existe.",
notFoundBackToDesigns: "Volver a diseños",
},
designEditor: {
exportHtml: "Exportar HTML",
exportPdf: "Exportar PDF",
designTools: "Herramientas Design",
drawOnCanvas: "dibujar sobre lienzo",
dropCommentPin: "Colocar pin de comentario",
presentInThisTab: "En esta pestaña",
presentFullscreen: "Pantalla completa",
presentNewTab: "Nueva pestaña",
addTweaks: "Agregar ajustes",
addTweakControls: "Agregar controles de ajuste",
closeTweaks: "Cerrar ajustes",
tweaksDocs: "Más información.",
noTweakControls: "Aún no hay controles de ajuste.",
extensions: "Extensiones",
addExtension: "Extensión",
extensionsDocs: "Docs",
extensionsPromptTitle: "¿Qué debe hacer esta extensión?",
extensionsPlaceholder:
"Herramientas de estilo, selección, acciones de mesa...",
extensionsEmptyTitle: "Aún no hay extensiones del editor",
extensionsEmptyDescription:
"Crea una pequeña extensión del inspector que pueda leer el elemento seleccionado, llamar acciones o pedir al agente que actualice la mesa de trabajo.",
extensionsAvailable: "Disponibles",
extensionsInstall: "Agregar",
extensionsInstallError: "Error al instalar la extensión",
designPreview: "Vista previa de Design",
presentMode: "Modo presente",
useThisDirection: "Usa esta dirección",
variantHandoffHelp:
"Pegue este resumen en su agente de codificación para continuar.",
summaryCopied: "Resumen copiado",
selectSummaryToCopy: "Seleccione el resumen para copiarlo",
dismiss: "Descartar",
copied: "Copiado",
copySummary: "Copiar resumen",
closeAllTabs: "Cerrar todo",
closeOtherTabs: "Cerrar Otros",
closeTab: "Cerrar",
fitToScreen: "Ajustar a la pantalla",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Selector de imágenes Assets",
loadingAssetsPicker: "Cargando el selector Assets",
assetAdded: "Activo agregado",
assetsNoImageUrl: "Assets no devolvió una URL de imagen.",
failedToUploadFile: "No se pudo cargar el archivo",
designSystem: "sistema Design",
noDesignSystem: "Sin sistema de diseño",
newDesignSystem: "Nuevo",
addAttachment: "Añadir",
removeAttachment: "Eliminar {{name}}",
uploadFile: "Subir archivo",
uploadFileDescription: "Imágenes, PDF, texto/código",
pickAsset: "Elegir activo",
pickAssetDescription: "Explorar o generar imágenes",
},
visualEditor: {
typeAnnotation: "Escriba anotación...",
typeAnnotationFancy: "Escriba anotación…",
typeAnywhere: "Escribe en cualquier lugar",
typeAnywhereOnCanvas: "Escribe en cualquier parte del lienzo",
clearAll: "Borrar todo",
exitDrawMode: "Salir del modo sorteo",
undoStroke: "Deshacer trazo",
redoStroke: "Rehacer trazo",
tellAgentWhatToDo: "Dígale al agente qué hacer...",
clickToDropCommentPin:
"Haga clic en cualquier lugar para colocar un pin de comentario",
editDesign: "Editar diseño",
escToExit: "Esc para salir",
tellAgentWhatToChange: "Dígale al agente qué cambiar...",
changesSaveWhenReconnected:
"Los cambios se guardarán cuando se vuelva a conectar",
changesDiscarded:
"Algunos cambios no se pudieron guardar porque el archivo ya no existe y se descartaron.",
offline: "Sin conexión",
saving: "Guardando...",
clearedAllAnnotations: "Se borraron todas las anotaciones",
annotationsDiscardedOnViewChange:
"Se descartaron {{count}} anotación(es) sin enviar al salir de esta vista.",
undo: "Deshacer",
send: "Enviar",
sendingDrawing: "Enviando…",
commentSent: "Comentario enviado",
comment: "Comentario",
},
home: {
pageTitle: "Design",
searchPlaceholder: "Buscar diseños...",
newDesign: "Nuevo Design",
newDesignLower: "Nuevo diseño",
createDesignProject: "Crear un proyecto de diseño.",
openingDesign: "Abriendo diseño...",
skipToEditor: "Ir al editor",
failedToCreateDesign: "No se pudo crear el diseño",
describeBuild: "Describe lo que quieres crear...",
selected: "{{count}} seleccionado",
clearVisibleSelection: "Borrar selección visible",
selectVisibleDesigns: "Seleccionar diseños visibles",
clearSelection: "Borrar selección",
delete: "Eliminar",
selectDesign: "Seleccione {{title}}",
actionsForDesign: "Acciones para {{title}}",
rename: "Cambiar nombre",
duplicate: "Duplicar",
renameDesign: "Cambiar el nombre del diseño",
designName: "Nombre Design",
cancel: "Cancelar",
save: "Guardar",
deleteDesignTitle: "¿Eliminar Design?",
deleteDesignsTitle: "¿Eliminar {{count}} Design?",
deleteSingleDesignsTitle: "¿Eliminar {{count}} Design?",
deleteDesignDescription:
"Esto eliminará permanentemente este diseño y todos sus archivos. Esta acción no se puede deshacer.",
deleteDesignsDescription:
"Esto eliminará permanentemente estos diseños {{count}} y todos sus archivos. Esta acción no se puede deshacer.",
untitledDesign: "Sin título Design",
createFirstDesign: "Crea tu primer diseño",
pickStartingPoint:
"Elija un punto de partida o escriba su propio mensaje.",
starterSaas: "Página de inicio de SaaS",
starterDashboard: "Panel",
starterPricing: "Página de precios",
starterMobile: "aplicación móvil",
prototype: "Prototipo",
other: "Otro",
designPreview: "Vista previa de Design",
},
templatesPage: {
title: "Plantillas de marketing",
description:
"Diseños iniciales editables y de tamaño para lanzamientos, anuncios, presentaciones, eventos y folletos de PDF.",
brand: "Marca: {{title}}",
useTemplate: "Usar plantilla",
socialSquare: "plaza social",
formatQuestion: "¿A qué formato debe orientarse este {{title}}?",
formatHeader: "Formato",
desktop: "Escritorio",
mobile: "Móvil",
tablet: "Tableta",
},
routeTitles: {
notFound: "No encontrado - Design",
designSystems: "Sistemas de diseño",
designSystemSetup: "Configuración del sistema de diseño",
designEditor: "Editor de Design",
designTemplates: "Plantillas de Design",
toolDesign: "Herramienta — Design",
extensionsDesign: "Extensiones — Design",
agentObservability: "Observabilidad del agente",
designPreview: "Vista previa de Design",
settingsDesign: "Configuración — Design",
teamDesign: "Equipo - Design",
},
},
"fr-FR": {
pages: {
presentExitHint: "Appuyez sur Esc pour quitter",
notFoundDescription: "La page que vous recherchez n'existe pas.",
notFoundBackToDesigns: "Retour aux créations",
},
designEditor: {
exportHtml: "Exporter HTML",
exportPdf: "Exporter PDF",
designTools: "Outils Design",
drawOnCanvas: "Dessiner sur toile",
dropCommentPin: "Déposer l'épingle de commentaire",
presentInThisTab: "Dans cet onglet",
presentFullscreen: "Plein écran",
presentNewTab: "Nouvel onglet",
addTweaks: "Ajouter des ajustements",
addTweakControls: "Ajouter des contrôles de réglage",
closeTweaks: "Fermer les réglages",
tweaksDocs: "En savoir plus.",
noTweakControls: "Pas encore de contrôles de réglage.",
extensions: "Extensions",
addExtension: "Extension",
extensionsDocs: "Docs",
extensionsPromptTitle: "Que doit faire cette extension ?",
extensionsPlaceholder:
"Outils de style, aides de sélection, actions de plan...",
extensionsEmptyTitle: "Aucune extension d’éditeur pour l’instant",
extensionsEmptyDescription:
"Créez une petite extension d’inspecteur qui peut lire l’élément sélectionné, appeler des actions ou demander à l’agent de mettre à jour le plan.",
extensionsAvailable: "Disponibles",
extensionsInstall: "Ajouter",
extensionsInstallError: "Échec de l'installation de l'extension",
designPreview: "Aperçu de Design",
presentMode: "Mode Présent",
useThisDirection: "Utilisez cette direction",
variantHandoffHelp:
"Collez ce résumé dans votre agent de codage pour continuer.",
summaryCopied: "Résumé copié",
selectSummaryToCopy: "Sélectionnez le résumé pour le copier",
dismiss: "Ignorer",
copied: "Copié",
copySummary: "Copier le résumé",
closeAllTabs: "Fermer tout",
closeOtherTabs: "Fermer les autres",
closeTab: "Fermer",
fitToScreen: "Ajuster à l'écran",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Sélecteur d'images Assets",
loadingAssetsPicker: "Chargement du sélecteur Assets",
assetAdded: "Actif ajouté",
assetsNoImageUrl: "Assets n'a pas renvoyé d'URL d'image.",
failedToUploadFile: "Échec du téléchargement du fichier",
designSystem: "Système Design",
noDesignSystem: "Aucun système de conception",
newDesignSystem: "Nouveau",
addAttachment: "Ajouter",
removeAttachment: "Supprimer {{name}}",
uploadFile: "Télécharger le fichier",
uploadFileDescription: "Images, PDF, texte/code",
pickAsset: "Choisir un actif",
pickAssetDescription: "Parcourir ou générer des images",
},
visualEditor: {
typeAnnotation: "Tapez l'annotation...",
typeAnnotationFancy: "Tapez l'annotation…",
typeAnywhere: "Tapez n'importe où",
typeAnywhereOnCanvas: "Tapez n'importe où sur la toile",
clearAll: "Tout effacer",
exitDrawMode: "Quitter le mode dessin",
undoStroke: "Annuler le trait",
redoStroke: "Refaire le trait",
tellAgentWhatToDo: "Dites à l’agent quoi faire…",
clickToDropCommentPin:
"Cliquez n'importe où pour déposer une épingle de commentaire",
editDesign: "Modifier la conception",
escToExit: "Esc pour quitter",
tellAgentWhatToChange: "Dites à l’agent ce qu’il faut changer…",
changesSaveWhenReconnected:
"Les modifications seront enregistrées une fois reconnecté",
changesDiscarded:
"Certaines modifications n’ont pas pu être enregistrées car le fichier n’existe plus et ont été ignorées.",
offline: "Hors ligne",
saving: "Enregistrement...",
clearedAllAnnotations: "Toutes les annotations ont été effacées",
annotationsDiscardedOnViewChange:
"{{count}} annotation(s) non envoyée(s) ont été abandonnées lorsque vous avez quitté cette vue.",
undo: "Annuler",
send: "Envoyer",
sendingDrawing: "Envoi…",
commentSent: "Commentaire envoyé",
comment: "Commentaire",
},
home: {
pageTitle: "Design",
searchPlaceholder: "Rechercher des modèles...",
newDesign: "Nouveau Design",
newDesignLower: "Nouveau design",
createDesignProject: "Créer un projet de conception",
openingDesign: "Ouverture du design...",
skipToEditor: "Accéder à l’éditeur",
failedToCreateDesign: "Impossible de créer le design",
describeBuild: "Décrivez ce que vous voulez créer...",
selected: "{{count}} sélectionné",
clearVisibleSelection: "Effacer la sélection visible",
selectVisibleDesigns: "Sélectionnez des designs visibles",
clearSelection: "Effacer la sélection",
delete: "Supprimer",
selectDesign: "Sélectionnez {{title}}",
actionsForDesign: "Actions pour {{title}}",
rename: "Renommer",
duplicate: "Dupliquer",
renameDesign: "Renommer la conception",
designName: "Nom Design",
cancel: "Annuler",
save: "Enregistrer",
deleteDesignTitle: "Supprimer Design ?",
deleteDesignsTitle: "Supprimer les {{count}} Design ?",
deleteSingleDesignsTitle: "Supprimer {{count}} Design ?",
deleteDesignDescription:
"Cela supprimera définitivement cette conception et tous ses fichiers. Cette action ne peut pas être annulée.",
deleteDesignsDescription:
"Cela supprimera définitivement ces conceptions {{count}} et tous leurs fichiers. Cette action ne peut pas être annulée.",
untitledDesign: "Sans titre Design",
createFirstDesign: "Créez votre premier design",
pickStartingPoint:
"Choisissez un point de départ ou rédigez votre propre invite.",
starterSaas: "Page de destination SaaS",
starterDashboard: "Tableau de bord",
starterPricing: "Page de tarification",
starterMobile: "Application mobile",
prototype: "Prototype",
other: "Autre",
designPreview: "Aperçu Design",
},
templatesPage: {
title: "Modèles marketing",
description:
"Modèles de démarrage dimensionnés et modifiables pour les lancements, les publicités, les présentations, les événements et les documents PDF.",
brand: "Marque : {{title}}",
useTemplate: "Utiliser un modèle",
socialSquare: "Place sociale",
formatQuestion: "Quel format ce {{title}} doit-il cibler ?",
formatHeader: "Format",
desktop: "Ordinateur",
mobile: "Mobile",
tablet: "Tablette",
},
routeTitles: {
notFound: "Introuvable - Design",
designSystems: "Systèmes de conception",
designSystemSetup: "Configuration du système de conception",
designEditor: "Éditeur Design",
designTemplates: "Modèles Design",
toolDesign: "Outil — Design",
extensionsDesign: "Extensions — Design",
agentObservability: "Observabilité de l’agent",
designPreview: "Aperçu Design",
settingsDesign: "Paramètres — Design",
teamDesign: "Équipe - Design",
},
},
"de-DE": {
pages: {
presentExitHint: "Drücken Sie Esc, um den Vorgang zu beenden",
notFoundDescription: "Die gesuchte Seite existiert nicht.",
notFoundBackToDesigns: "Zurück zu den Designs",
},
designEditor: {
exportHtml: "HTML exportieren",
exportPdf: "PDF exportieren",
designTools: "Design-Tools",
drawOnCanvas: "Zeichnen Sie auf Leinwand",
dropCommentPin: "Kommentar-Pin hinterlassen",
presentInThisTab: "Auf dieser Registerkarte",
presentFullscreen: "Vollbild",
presentNewTab: "Neuer Tab",
addTweaks: "Fügen Sie Optimierungen hinzu",
addTweakControls: "Fügen Sie Optimierungssteuerelemente hinzu",
closeTweaks: "Enge Optimierungen",
tweaksDocs: "Mehr erfahren.",
noTweakControls: "Noch keine Optimierungssteuerung.",
extensions: "Erweiterungen",
addExtension: "Erweiterung",
extensionsDocs: "Dokumentation",
extensionsPromptTitle: "Was soll diese Erweiterung tun?",
extensionsPlaceholder:
"Stilwerkzeuge, Auswahlhilfen, Arbeitsflächenaktionen...",
extensionsEmptyTitle: "Noch keine Editor-Erweiterungen",
extensionsEmptyDescription:
"Erstellen Sie eine kleine Inspector-Erweiterung, die das ausgewählte Element lesen, Aktionen aufrufen oder den Agenten bitten kann, die Arbeitsfläche zu aktualisieren.",
extensionsAvailable: "Verfügbar",
extensionsInstall: "Hinzufügen",
extensionsInstallError: "Installation der Erweiterung fehlgeschlagen",
designPreview: "Design-Vorschau",
presentMode: "Gegenwartsmodus",
useThisDirection: "Benutzen Sie diese Richtung",
variantHandoffHelp:
"Fügen Sie diese Zusammenfassung in Ihren Codierungsagenten ein, um fortzufahren.",
summaryCopied: "Zusammenfassung kopiert",
selectSummaryToCopy: "Wählen Sie die Zusammenfassung zum Kopieren aus",
dismiss: "Schließen",
copied: "Kopiert",
copySummary: "Zusammenfassung kopieren",
closeAllTabs: "Alle schließen",
closeOtherTabs: "Andere schließen",
closeTab: "Schließen",
fitToScreen: "An Bildschirm anpassen",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Assets-Bildauswahl",
loadingAssetsPicker: "Assets-Auswahl wird geladen",
assetAdded: "Asset hinzugefügt",
assetsNoImageUrl: "Assets hat keine Bild-URL zurückgegeben.",
failedToUploadFile: "Datei konnte nicht hochgeladen werden",
designSystem: "Design-System",
noDesignSystem: "Kein Designsystem",
newDesignSystem: "Neu",
addAttachment: "Hinzufügen",
removeAttachment: "Entfernen Sie {{name}}",
uploadFile: "Datei hochladen",
uploadFileDescription: "Bilder, PDFs, Text/Code",
pickAsset: "Wählen Sie ein Asset aus",
pickAssetDescription: "Durchsuchen oder generieren Sie Bilder",
},
visualEditor: {
typeAnnotation: "Anmerkung eingeben...",
typeAnnotationFancy: "Anmerkung eingeben…",
typeAnywhere: "Geben Sie irgendwo ein",
typeAnywhereOnCanvas:
"Geben Sie eine beliebige Stelle auf der Leinwand ein",
clearAll: "Alles löschen",
exitDrawMode: "Zeichenmodus verlassen",
undoStroke: "Strich rückgängig machen",
redoStroke: "Strich wiederholen",
tellAgentWhatToDo: "Sagen Sie dem Agenten, was er tun soll ...",
clickToDropCommentPin:
"Klicken Sie auf eine beliebige Stelle, um einen Kommentar-Pin zu hinterlassen",
editDesign: "Design bearbeiten",
escToExit: "Esc zum Verlassen",
tellAgentWhatToChange: "Sagen Sie dem Agenten, was er ändern soll ...",
changesSaveWhenReconnected:
"Änderungen werden gespeichert, wenn die Verbindung wiederhergestellt wird",
changesDiscarded:
"Einige Änderungen konnten nicht gespeichert werden, da die Datei nicht mehr existiert, und wurden verworfen.",
offline: "Offline",
saving: "Speichern...",
clearedAllAnnotations: "Alle Anmerkungen gelöscht",
annotationsDiscardedOnViewChange:
"{{count}} nicht gesendete Anmerkung(en) wurden beim Verlassen dieser Ansicht verworfen.",
undo: "Rückgängig",
send: "Senden",
sendingDrawing: "Wird gesendet …",
commentSent: "Kommentar gesendet",
comment: "Kommentar",
},
home: {
pageTitle: "Designs",
searchPlaceholder: "Designs suchen...",
newDesign: "Neue Design",
newDesignLower: "Neues Design",
createDesignProject: "Erstellen Sie ein Designprojekt",
openingDesign: "Design wird geöffnet...",
skipToEditor: "Direkt zum Editor",
failedToCreateDesign: "Design konnte nicht erstellt werden",
describeBuild: "Beschreiben Sie, was Sie erstellen möchten...",
selected: "{{count}} ausgewählt",
clearVisibleSelection: "Klare sichtbare Auswahl",
selectVisibleDesigns: "Wählen Sie sichtbare Designs aus",
clearSelection: "Klare Auswahl",
delete: "Löschen",
selectDesign: "Wählen Sie {{title}}",
actionsForDesign: "Aktionen für {{title}}",
rename: "Umbenennen",
duplicate: "Duplizieren",
renameDesign: "Design umbenennen",
designName: "Design-Name",
cancel: "Abbrechen",
save: "Speichern",
deleteDesignTitle: "Design löschen?",
deleteDesignsTitle: "{{count}} Designs löschen?",
deleteSingleDesignsTitle: "{{count}} Design löschen?",
deleteDesignDescription:
"Dadurch werden dieses Design und alle seine Dateien dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
deleteDesignsDescription:
"Dadurch werden diese {{count}}-Designs und alle ihre Dateien dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
untitledDesign: "Ohne Titel Design",
createFirstDesign: "Erstellen Sie Ihr erstes Design",
pickStartingPoint:
"Wählen Sie einen Ausgangspunkt oder schreiben Sie Ihre eigene Aufforderung.",
starterSaas: "SaaS-Landingpage",
starterDashboard: "Dashboard",
starterPricing: "Preisseite",
starterMobile: "Mobile App",
prototype: "Prototyp",
other: "Andere",
designPreview: "Design-Vorschau",
},
templatesPage: {
title: "Marketingvorlagen",
description:
"Große, bearbeitbare Starter-Designs für Produkteinführungen, Anzeigen, Decks, Veranstaltungen und PDF-Handouts.",
brand: "Marke: {{title}}",
useTemplate: "Vorlage verwenden",
socialSquare: "Sozialer Platz",
formatQuestion: "Welches Format soll {{title}} verwenden?",
formatHeader: "Format",
desktop: "Desktop",
mobile: "Mobil",
tablet: "Tablet",
},
routeTitles: {
notFound: "Nicht gefunden - Design",
designSystems: "Designsysteme",
designSystemSetup: "Designsystem einrichten",
designEditor: "Design-Editor",
designTemplates: "Designvorlagen",
toolDesign: "Tool — Design",
extensionsDesign: "Erweiterungen — Design",
agentObservability: "Agentenbeobachtbarkeit",
designPreview: "Design-Vorschau",
settingsDesign: "Einstellungen — Design",
teamDesign: "Team - Design",
},
},
"ja-JP": {
pages: {
presentExitHint: "Esc を押して終了します",
notFoundDescription: "お探しのページは存在しません。",
notFoundBackToDesigns: "デザインに戻る",
},
designEditor: {
exportHtml: "エクスポート HTML",
exportPdf: "エクスポート PDF",
designTools: "Design ツール",
drawOnCanvas: "キャンバスに描く",
dropCommentPin: "コメントピンをドロップ",
presentInThisTab: "このタブでは",
presentFullscreen: "フルスクリーン",
presentNewTab: "新しいタブ",
addTweaks: "微調整を追加する",
addTweakControls: "微調整コントロールを追加する",
closeTweaks: "微調整を閉じる",
tweaksDocs: "詳細を見る。",
noTweakControls: "まだ調整コントロールはありません。",
extensions: "拡張機能",
addExtension: "拡張機能",
extensionsDocs: "ドキュメント",
extensionsPromptTitle: "この拡張機能で何をしますか?",
extensionsPlaceholder: "スタイルツール、選択補助、アートボード操作...",
extensionsEmptyTitle: "エディター拡張機能はまだありません",
extensionsEmptyDescription:
"選択中の要素を読み取り、アクションを呼び出し、エージェントにアートボード更新を依頼できる小さなインスペクター拡張機能を作成します。",
extensionsAvailable: "利用可能",
extensionsInstall: "追加",
extensionsInstallError: "拡張機能のインストールに失敗しました",
designPreview: "Design プレビュー",
presentMode: "プレゼントモード",
useThisDirection: "この方向を使用してください",
variantHandoffHelp:
"この概要をコーディング エージェントに貼り付けて続行します。",
summaryCopied: "概要をコピーしました",
selectSummaryToCopy: "コピーする概要を選択してください",
dismiss: "閉じる",
copied: "コピー済み",
copySummary: "概要をコピー",
closeAllTabs: "すべて閉じる",
closeOtherTabs: "その他を閉じる",
closeTab: "閉じる",
fitToScreen: "画面に合わせる",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Assets 画像ピッカー",
loadingAssetsPicker: "Assets ピッカーをロード中",
assetAdded: "アセットが追加されました",
assetsNoImageUrl: "Assets が画像 URL を返しませんでした。",
failedToUploadFile: "ファイルのアップロードに失敗しました",
designSystem: "Designシステム",
noDesignSystem: "デザインシステムがない",
newDesignSystem: "新しい",
addAttachment: "追加",
removeAttachment: "{{name}} を削除",
uploadFile: "ファイルをアップロードする",
uploadFileDescription: "画像、PDF、テキスト/コード",
pickAsset: "アセットを選択",
pickAssetDescription: "画像の参照または生成",
},
visualEditor: {
typeAnnotation: "注釈を入力...",
typeAnnotationFancy: "注釈を入力…",
typeAnywhere: "どこでも入力",
typeAnywhereOnCanvas: "キャンバス上の任意の場所に入力します",
clearAll: "すべてクリア",
exitDrawMode: "描画モードを終了する",
undoStroke: "ストロークを元に戻す",
redoStroke: "ストロークをやり直す",
tellAgentWhatToDo: "エージェントに何をすべきかを伝えてください...",
clickToDropCommentPin: "どこかをクリックしてコメントピンをドロップします",
editDesign: "デザインの編集",
escToExit: "Esc 終了",
tellAgentWhatToChange: "何を変更するかをエージェントに伝えてください...",
changesSaveWhenReconnected: "変更は再接続時に保存されます",
changesDiscarded:
"ファイルが存在しないため、一部の変更を保存できず破棄しました。",
offline: "オフライン",
saving: "保存中...",
clearedAllAnnotations: "すべての注釈を消去しました",
annotationsDiscardedOnViewChange:
"この画面を離れたため、未送信の注釈{{count}}件が破棄されました。",
undo: "元に戻す",
send: "送信",
sendingDrawing: "送信中…",
commentSent: "コメントを送信しました",
comment: "コメント",
},
home: {
pageTitle: "Design",
searchPlaceholder: "デザインを検索...",
newDesign: "新しいDesign",
newDesignLower: "新しいデザイン",
createDesignProject: "デザインプロジェクトを作成する",
openingDesign: "デザインを開いています...",
skipToEditor: "エディターに移動",
failedToCreateDesign: "デザインを作成できませんでした",
describeBuild: "作成したいものを説明してください...",
selected: "{{count}} が選択されました",
clearVisibleSelection: "表示されている選択範囲をクリアします",
selectVisibleDesigns: "表示されるデザインを選択する",
clearSelection: "選択をクリア",
delete: "削除",
selectDesign: "{{title}}を選択してください",
actionsForDesign: "{{title}} のアクション",
rename: "名前の変更",
duplicate: "重複",
renameDesign: "デザイン名の変更",
designName: "Design 名前",
cancel: "キャンセル",
save: "保存",
deleteDesignTitle: "Design を削除しますか?",
deleteDesignsTitle: "{{count}} Design を削除しますか?",
deleteSingleDesignsTitle: "{{count}} Design を削除しますか?",
deleteDesignDescription:
"これにより、このデザインとそのすべてのファイルが完全に削除されます。この操作は元に戻すことができません。",
deleteDesignsDescription:
"これにより、これらの {{count}} デザインとそのすべてのファイルが完全に削除されます。この操作は元に戻すことができません。",
untitledDesign: "無題 Design",
createFirstDesign: "最初のデザインを作成する",
pickStartingPoint: "開始点を選択するか、独自のプロンプトを作成します。",
starterSaas: "SaaS ランディング ページ",
starterDashboard: "ダッシュボード",
starterPricing: "価格ページ",
starterMobile: "モバイルアプリ",
prototype: "プロトタイプ",
other: "その他",
designPreview: "Design プレビュー",
},
templatesPage: {
title: "マーケティングテンプレート",
description:
"ローンチ、広告、デッキ、イベント、PDF 配布物用のサイズ調整可能な編集可能なスターター デザイン。",
brand: "ブランド: {{title}}",
useTemplate: "テンプレートを使用する",
socialSquare: "ソーシャルスクエア",
formatQuestion: "この {{title}} はどの形式を対象にしますか?",
formatHeader: "形式",
desktop: "デスクトップ",
mobile: "モバイル",
tablet: "タブレット",
},
routeTitles: {
notFound: "見つかりません - Design",
designSystems: "デザインシステム",
designSystemSetup: "デザインシステム設定",
designEditor: "Design エディター",
designTemplates: "Design テンプレート",
toolDesign: "ツール — Design",
extensionsDesign: "拡張機能 — Design",
agentObservability: "エージェントの可観測性",
designPreview: "Design プレビュー",
settingsDesign: "設定 — Design",
teamDesign: "チーム - Design",
},
},
"ko-KR": {
pages: {
presentExitHint: "종료하려면 Esc을 누르세요.",
notFoundDescription: "찾으시는 페이지가 존재하지 않습니다.",
notFoundBackToDesigns: "디자인으로 돌아가기",
},
designEditor: {
exportHtml: "HTML 내보내기",
exportPdf: "PDF 내보내기",
designTools: "Design 도구",
drawOnCanvas: "캔버스에 그리기",
dropCommentPin: "댓글 핀 삭제",
presentInThisTab: "이 탭에서는",
presentFullscreen: "전체 화면",
presentNewTab: "새 탭",
addTweaks: "조정 추가",
addTweakControls: "조정 컨트롤 추가",
closeTweaks: "조정 닫기",
tweaksDocs: "자세히 알아보기.",
noTweakControls: "아직 조정 컨트롤이 없습니다.",
extensions: "확장",
addExtension: "확장",
extensionsDocs: "문서",
extensionsPromptTitle: "이 확장은 무엇을 해야 하나요?",
extensionsPlaceholder: "스타일 도구, 선택 도우미, 아트보드 작업...",
extensionsEmptyTitle: "아직 에디터 확장이 없습니다",
extensionsEmptyDescription:
"선택한 요소를 읽고, 액션을 호출하거나, 에이전트에게 아트보드 업데이트를 요청할 수 있는 작은 인스펙터 확장을 만드세요.",
extensionsAvailable: "사용 가능",
extensionsInstall: "추가",
extensionsInstallError: "확장 프로그램 설치에 실패했습니다",
designPreview: "Design 미리보기",
presentMode: "현재 모드",
useThisDirection: "이 방향을 사용하세요",
variantHandoffHelp: "계속하려면 이 요약을 코딩 에이전트에 붙여넣으세요.",
summaryCopied: "요약이 복사됨",
selectSummaryToCopy: "복사할 요약을 선택하세요",
dismiss: "닫기",
copied: "복사됨",
copySummary: "요약 복사",
closeAllTabs: "모두 닫기",
closeOtherTabs: "기타 닫기",
closeTab: "닫기",
fitToScreen: "화면에 맞추기",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Assets 이미지 선택기",
loadingAssetsPicker: "Assets 선택기 로드 중",
assetAdded: "자산이 추가됨",
assetsNoImageUrl: "Assets에서 이미지 URL을 반환하지 않았습니다.",
failedToUploadFile: "파일을 업로드하지 못했습니다.",
designSystem: "Design 시스템",
noDesignSystem: "디자인 시스템 없음",
newDesignSystem: "새로운",
addAttachment: "추가",
removeAttachment: "{{name}} 제거",
uploadFile: "파일 업로드",
uploadFileDescription: "이미지, PDF, 텍스트/코드",
pickAsset: "자산 선택",
pickAssetDescription: "이미지 찾아보기 또는 생성",
},
visualEditor: {
typeAnnotation: "주석 입력...",
typeAnnotationFancy: "주석 입력…",
typeAnywhere: "아무데나 입력하세요",
typeAnywhereOnCanvas: "캔버스의 아무 곳에나 입력하세요.",
clearAll: "모두 지우기",
exitDrawMode: "그리기 모드 종료",
undoStroke: "스트로크 취소",
redoStroke: "스트로크 다시 실행",
tellAgentWhatToDo: "상담원에게 무엇을 해야 할지 말하세요…",
clickToDropCommentPin: "댓글 핀을 추가하려면 아무 곳이나 클릭하세요.",
editDesign: "디자인 편집",
escToExit: "Esc 종료",
tellAgentWhatToChange: "상담사에게 무엇을 변경해야 할지 알려주세요...",
changesSaveWhenReconnected: "다시 연결되면 변경사항이 저장됩니다.",
changesDiscarded:
"파일이 더 이상 존재하지 않아 일부 변경사항을 저장하지 못하고 삭제했습니다.",
offline: "오프라인",
saving: "저장 중...",
clearedAllAnnotations: "모든 주석이 지워졌습니다",
annotationsDiscardedOnViewChange:
"이 화면을 벗어나면서 전송되지 않은 주석 {{count}}개가 삭제되었습니다.",
undo: "실행 취소",
send: "보내기",
sendingDrawing: "전송 중…",
commentSent: "댓글을 보냈습니다",
comment: "댓글",
},
home: {
pageTitle: "Design",
searchPlaceholder: "디자인 검색...",
newDesign: "새로운 Design",
newDesignLower: "새로운 디자인",
createDesignProject: "디자인 프로젝트 만들기",
openingDesign: "디자인을 여는 중...",
skipToEditor: "편집기로 이동",
failedToCreateDesign: "디자인을 만들지 못했습니다",
describeBuild: "만들고 싶은 것을 설명하세요...",
selected: "{{count}} 선택됨",
clearVisibleSelection: "보이는 선택 항목 지우기",
selectVisibleDesigns: "눈에 띄는 디자인을 선택하세요",
clearSelection: "선택 취소",
delete: "삭제",
selectDesign: "{{title}}을 선택하세요",
actionsForDesign: "{{title}}에 대한 작업",
rename: "이름 바꾸기",
duplicate: "중복",
renameDesign: "디자인 이름 바꾸기",
designName: "Design 이름",
cancel: "취소",
save: "저장",
deleteDesignTitle: "Design을 삭제하시겠습니까?",
deleteDesignsTitle: "{{count}} Design을 삭제하시겠습니까?",
deleteSingleDesignsTitle: "{{count}} Design을 삭제하시겠습니까?",
deleteDesignDescription:
"이 디자인과 모든 파일이 영구적으로 삭제됩니다. 이 작업은 취소할 수 없습니다.",
deleteDesignsDescription:
"이렇게 하면 해당 {{count}} 디자인과 모든 파일이 영구적으로 삭제됩니다. 이 작업은 취소할 수 없습니다.",
untitledDesign: "제목 없음 Design",
createFirstDesign: "첫 번째 디자인 만들기",
pickStartingPoint: "시작점을 선택하거나 자신만의 프롬프트를 작성하세요.",
starterSaas: "SaaS 랜딩 페이지",
starterDashboard: "대시보드",
starterPricing: "가격 페이지",
starterMobile: "모바일 앱",
prototype: "프로토타입",
other: "기타",
designPreview: "Design 미리보기",
},
templatesPage: {
title: "마케팅 템플릿",
description:
"출시, 광고, 데크, 이벤트 및 PDF 유인물을 위한 크기가 조정되고 편집 가능한 스타터 디자인입니다.",
brand: "브랜드: {{title}}",
useTemplate: "템플릿 사용",
socialSquare: "소셜 스퀘어",
formatQuestion: "이 {{title}}은 어떤 형식을 대상으로 해야 하나요?",
formatHeader: "형식",
desktop: "데스크톱",
mobile: "모바일",
tablet: "태블릿",
},
routeTitles: {
notFound: "찾을 수 없음 - Design",
designSystems: "디자인 시스템",
designSystemSetup: "디자인 시스템 설정",
designEditor: "Design 편집기",
designTemplates: "Design 템플릿",
toolDesign: "도구 — Design",
extensionsDesign: "확장 프로그램 — Design",
agentObservability: "에이전트 관찰성",
designPreview: "Design 미리보기",
settingsDesign: "설정 — Design",
teamDesign: "팀 - Design",
},
},
"pt-BR": {
pages: {
presentExitHint: "Pressione Esc para sair",
notFoundDescription: "A página que você procura não existe.",
notFoundBackToDesigns: "Voltar aos designs",
},
designEditor: {
exportHtml: "Exportar HTML",
exportPdf: "Exportar PDF",
designTools: "Ferramentas Design",
drawOnCanvas: "Desenhe na tela",
dropCommentPin: "Soltar pin de comentário",
presentInThisTab: "Nesta aba",
presentFullscreen: "Tela cheia",
presentNewTab: "Nova guia",
addTweaks: "Adicionar ajustes",
addTweakControls: "Adicionar controles de ajuste",
closeTweaks: "Fechar ajustes",
tweaksDocs: "Saiba mais.",
noTweakControls: "Nenhum controle de ajuste ainda.",
extensions: "Extensões",
addExtension: "Extensão",
extensionsDocs: "Docs",
extensionsPromptTitle: "O que esta extensão deve fazer?",
extensionsPlaceholder:
"Ferramentas de estilo, seleção, ações de prancheta...",
extensionsEmptyTitle: "Ainda não há extensões do editor",
extensionsEmptyDescription:
"Crie uma pequena extensão do inspetor que possa ler o elemento selecionado, chamar ações ou pedir ao agente para atualizar a prancheta.",
extensionsAvailable: "Disponíveis",
extensionsInstall: "Adicionar",
extensionsInstallError: "Falha ao instalar a extensão",
designPreview: "Visualização Design",
presentMode: "Modo Presente",
useThisDirection: "Use esta direção",
variantHandoffHelp:
"Cole este resumo em seu agente de codificação para continuar.",
summaryCopied: "Resumo copiado",
selectSummaryToCopy: "Selecione o resumo para copiá-lo",
dismiss: "Dispensar",
copied: "Copiado",
copySummary: "Copiar resumo",
closeAllTabs: "Fechar tudo",
closeOtherTabs: "Fechar outros",
closeTab: "Fechar",
fitToScreen: "Ajustar à tela",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Seletor de imagens Assets",
loadingAssetsPicker: "Carregando o seletor Assets",
assetAdded: "Recurso adicionado",
assetsNoImageUrl: "Assets não retornou uma URL de imagem.",
failedToUploadFile: "Falha ao carregar o arquivo",
designSystem: "Sistema Design",
noDesignSystem: "Nenhum sistema de design",
newDesignSystem: "Novo",
addAttachment: "Adicionar",
removeAttachment: "Remover {{name}}",
uploadFile: "Carregar arquivo",
uploadFileDescription: "Imagens, PDFs, texto/código",
pickAsset: "Escolher ativo",
pickAssetDescription: "Navegue ou gere imagens",
},
visualEditor: {
typeAnnotation: "Digite anotação...",
typeAnnotationFancy: "Digite anotação…",
typeAnywhere: "Digite em qualquer lugar",
typeAnywhereOnCanvas: "Digite em qualquer lugar da tela",
clearAll: "Limpar tudo",
exitDrawMode: "Sair do modo de desenho",
undoStroke: "Desfazer traço",
redoStroke: "Refazer traço",
tellAgentWhatToDo: "Diga ao agente o que fazer…",
clickToDropCommentPin:
"Clique em qualquer lugar para colocar um alfinete de comentário",
editDesign: "Editar desenho",
escToExit: "Esc para sair",
tellAgentWhatToChange: "Diga ao agente o que mudar…",
changesSaveWhenReconnected:
"As alterações serão salvas quando reconectadas",
changesDiscarded:
"Algumas alterações não puderam ser salvas porque o arquivo não existe mais e foram descartadas.",
offline: "Off-line",
saving: "Salvando...",
clearedAllAnnotations: "Todas as anotações foram limpas",
annotationsDiscardedOnViewChange:
"{{count}} anotação(ões) não enviada(s) foram descartadas ao sair desta visualização.",
undo: "Desfazer",
send: "Enviar",
sendingDrawing: "Enviando…",
commentSent: "Comentário enviado",
comment: "Comentário",
},
home: {
pageTitle: "Designs",
searchPlaceholder: "Pesquisar desenhos...",
newDesign: "Novo Design",
newDesignLower: "Novo design",
createDesignProject: "Crie um projeto de design",
openingDesign: "Abrindo design...",
skipToEditor: "Ir para o editor",
failedToCreateDesign: "Não foi possível criar o design",
describeBuild: "Descreva o que você quer criar...",
selected: "{{count}} selecionado",
clearVisibleSelection: "Limpar seleção visível",
selectVisibleDesigns: "Selecione designs visíveis",
clearSelection: "Limpar seleção",
delete: "Excluir",
selectDesign: "Selecione {{title}}",
actionsForDesign: "Ações para {{title}}",
rename: "Renomear",
duplicate: "Duplicar",
renameDesign: "Renomear desenho",
designName: "Nome Design",
cancel: "Cancelar",
save: "Salvar",
deleteDesignTitle: "Excluir Design?",
deleteDesignsTitle: "Excluir {{count}} Designs?",
deleteSingleDesignsTitle: "Excluir {{count}} Design?",
deleteDesignDescription:
"Isso excluirá permanentemente este design e todos os seus arquivos. Esta ação não pode ser desfeita.",
deleteDesignsDescription:
"Isso excluirá permanentemente esses designs {{count}} e todos os seus arquivos. Esta ação não pode ser desfeita.",
untitledDesign: "Sem título Design",
createFirstDesign: "Crie seu primeiro design",
pickStartingPoint:
"Escolha um ponto de partida ou escreva seu próprio prompt.",
starterSaas: "Página de destino SaaS",
starterDashboard: "Painel",
starterPricing: "Página de preços",
starterMobile: "Aplicativo móvel",
prototype: "Protótipo",
other: "Outro",
designPreview: "Visualização Design",
},
templatesPage: {
title: "Modelos de marketing",
description:
"Designs iniciais editáveis e dimensionados para lançamentos, anúncios, apresentações, eventos e folhetos PDF.",
brand: "Marca: {{title}}",
useTemplate: "Usar modelo",
socialSquare: "Praça social",
formatQuestion: "Qual formato este {{title}} deve usar?",
formatHeader: "Formato",
desktop: "Desktop",
mobile: "Móvel",
tablet: "Tablet",
},
routeTitles: {
notFound: "Não encontrado - Design",
designSystems: "Sistemas de design",
designSystemSetup: "Configuração do sistema de design",
designEditor: "Editor de Design",
designTemplates: "Modelos de Design",
toolDesign: "Ferramenta — Design",
extensionsDesign: "Extensões — Design",
agentObservability: "Observabilidade do agente",
designPreview: "Visualização Design",
settingsDesign: "Configurações — Design",
teamDesign: "Equipe - Design",
},
},
"hi-IN": {
pages: {
presentExitHint: "बाहर निकलने के लिए Esc दबाएँ",
notFoundDescription: "आप जिस पृष्ठ की तलाश कर रहे हैं वह मौजूद नहीं है।",
notFoundBackToDesigns: "डिज़ाइन पर वापस जाएँ",
},
designEditor: {
exportHtml: "HTML निर्यात करें",
exportPdf: "निर्यात PDF",
designTools: "Design उपकरण",
drawOnCanvas: "कैनवास पर चित्र बनाएं",
dropCommentPin: "टिप्पणी पिन छोड़ें",
presentInThisTab: "इस टैब में",
presentFullscreen: "फ़ुलस्क्रीन",
presentNewTab: "नया टैब",
addTweaks: "बदलाव जोड़ें",
addTweakControls: "ट्विक नियंत्रण जोड़ें",
closeTweaks: "बदलाव बंद करें",
tweaksDocs: "और जानें।",
noTweakControls: "अभी तक कोई ट्विक नियंत्रण नहीं है.",
extensions: "एक्सटेंशन",
addExtension: "एक्सटेंशन",
extensionsDocs: "दस्तावेज़",
extensionsPromptTitle: "यह एक्सटेंशन क्या करे?",
extensionsPlaceholder: "स्टाइल टूल, चयन सहायक, आर्टबोर्ड क्रियाएं...",
extensionsEmptyTitle: "अभी कोई एडिटर एक्सटेंशन नहीं",
extensionsEmptyDescription:
"एक छोटा इंस्पेक्टर एक्सटेंशन बनाएं जो चयनित तत्व पढ़ सके, एक्शन कॉल कर सके, या एजेंट से आर्टबोर्ड अपडेट करा सके.",
extensionsAvailable: "उपलब्ध",
extensionsInstall: "जोड़ें",
extensionsInstallError: "एक्सटेंशन इंस्टॉल करने में विफल",
designPreview: "Design पूर्वावलोकन",
presentMode: "वर्तमान मोड",
useThisDirection: "इस दिशा का प्रयोग करें",
variantHandoffHelp: "जारी रखने के लिए इस सारांश को अपने कोडिंग एजेंट में चिपकाएँ।",
summaryCopied: "सारांश कॉपी किया गया",
selectSummaryToCopy: "कॉपी करने के लिए सारांश चुनें",
dismiss: "खारिज करें",
copied: "कॉपी किया गया",
copySummary: "सारांश कॉपी करें",
closeAllTabs: "सभी बंद करें",
closeOtherTabs: "अन्य को बंद करें",
closeTab: "बंद करें",
fitToScreen: "स्क्रीन पर फ़िट करें",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Assets छवि पिकर",
loadingAssetsPicker: "Assets पिकर लोड हो रहा है",
assetAdded: "संपत्ति जोड़ी गई",
assetsNoImageUrl: "Assets ने कोई छवि URL नहीं लौटाया।",
failedToUploadFile: "फ़ाइल अपलोड करने में विफल",
designSystem: "Design प्रणाली",
noDesignSystem: "कोई डिज़ाइन प्रणाली नहीं",
newDesignSystem: "नया",
addAttachment: "जोड़ें",
removeAttachment: "{{name}} हटाएँ",
uploadFile: "फ़ाइल अपलोड करें",
uploadFileDescription: "छवियाँ, PDFs, पाठ/कोड",
pickAsset: "संपत्ति चुनें",
pickAssetDescription: "छवियाँ ब्राउज़ करें या उत्पन्न करें",
},
visualEditor: {
typeAnnotation: "एनोटेशन टाइप करें...",
typeAnnotationFancy: "एनोटेशन टाइप करें...",
typeAnywhere: "कहीं भी टाइप करें",
typeAnywhereOnCanvas: "कैनवास पर कहीं भी टाइप करें",
clearAll: "सब साफ़ करें",
exitDrawMode: "ड्रा मोड से बाहर निकलें",
undoStroke: "स्ट्रोक पूर्ववत करें",
redoStroke: "स्ट्रोक फिर से करें",
tellAgentWhatToDo: "एजेंट को बताएं कि क्या करना है...",
clickToDropCommentPin: "टिप्पणी पिन छोड़ने के लिए कहीं भी क्लिक करें",
editDesign: "डिज़ाइन संपादित करें",
escToExit: "बाहर निकलने के लिए Esc",
tellAgentWhatToChange: "एजेंट को बताएं कि क्या बदलना है...",
changesSaveWhenReconnected: "पुन: कनेक्ट होने पर परिवर्तन सहेजे जाएंगे",
changesDiscarded:
"कुछ परिवर्तन सहेजे नहीं जा सके क्योंकि फ़ाइल अब मौजूद नहीं है, और उन्हें छोड़ दिया गया।",
offline: "ऑफ़लाइन",
saving: "सहेजा जा रहा है...",
clearedAllAnnotations: "सभी एनोटेशन साफ़ किए गए",
annotationsDiscardedOnViewChange:
"यह दृश्य छोड़ने पर {{count}} न भेजे गए एनोटेशन हटा दिए गए।",
undo: "पूर्ववत करें",
send: "भेजें",
sendingDrawing: "भेजा जा रहा है…",
commentSent: "टिप्पणी भेजी गई",
comment: "टिप्पणी",
},
home: {
pageTitle: "Designs",
searchPlaceholder: "डिज़ाइन खोजें...",
newDesign: "नया Design",
newDesignLower: "नया डिज़ाइन",
createDesignProject: "एक डिज़ाइन प्रोजेक्ट बनाएं",
openingDesign: "डिज़ाइन खोला जा रहा है...",
skipToEditor: "एडिटर पर जाएँ",
failedToCreateDesign: "डिज़ाइन नहीं बनाया जा सका",
describeBuild: "बताएँ कि आप क्या बनाना चाहते हैं...",
selected: "{{count}} चयनित",
clearVisibleSelection: "स्पष्ट दृश्यमान चयन",
selectVisibleDesigns: "दृश्यमान डिज़ाइन चुनें",
clearSelection: "स्पष्ट चयन",
delete: "हटाएँ",
selectDesign: "{{title}} का चयन करें",
actionsForDesign: "{{title}} के लिए क्रियाएँ",
rename: "नाम बदलें",
duplicate: "डुप्लिकेट",
renameDesign: "डिज़ाइन का नाम बदलें",
designName: "Design नाम",
cancel: "रद्द करें",
save: "सहेजें",
deleteDesignTitle: "Design हटाएँ?",
deleteDesignsTitle: "{{count}} Designs हटाएँ?",
deleteSingleDesignsTitle: "{{count}} Design हटाएँ?",
deleteDesignDescription:
"इससे यह डिज़ाइन और इसकी सभी फ़ाइलें स्थायी रूप से हटा दी जाएंगी। इस एक्शन को वापस नहीं किया जा सकता।",
deleteDesignsDescription:
"यह इन {{count}} डिज़ाइनों और उनकी सभी फ़ाइलों को स्थायी रूप से हटा देगा। इस एक्शन को वापस नहीं किया जा सकता।",
untitledDesign: "शीर्षक रहित Design",
createFirstDesign: "अपना पहला डिज़ाइन बनाएं",
pickStartingPoint: "एक प्रारंभिक बिंदु चुनें या अपना स्वयं का संकेत लिखें।",
starterSaas: "सास लैंडिंग पृष्ठ",
starterDashboard: "डैशबोर्ड",
starterPricing: "मूल्य निर्धारण पृष्ठ",
starterMobile: "मोबाइल ऐप",
prototype: "प्रोटोटाइप",
other: "अन्य",
designPreview: "Design पूर्वावलोकन",
},
templatesPage: {
title: "विपणन टेम्पलेट्स",
description:
"लॉन्च, विज्ञापन, डेक, इवेंट और PDF हैंडआउट्स के लिए आकार, संपादन योग्य स्टार्टर डिज़ाइन।",
brand: "ब्रांड: {{title}}",
useTemplate: "टेम्प्लेट का उपयोग करें",
socialSquare: "सामाजिक वर्ग",
formatQuestion: "इस {{title}} को किस फ़ॉर्मैट को लक्षित करना चाहिए?",
formatHeader: "फ़ॉर्मैट",
desktop: "डेस्कटॉप",
mobile: "मोबाइल",
tablet: "टैबलेट",
},
routeTitles: {
notFound: "नहीं मिला - Design",
designSystems: "डिज़ाइन सिस्टम",
designSystemSetup: "डिज़ाइन सिस्टम सेटअप",
designEditor: "Design संपादक",
designTemplates: "Design टेम्प्लेट",
toolDesign: "टूल — Design",
extensionsDesign: "एक्सटेंशन — Design",
agentObservability: "एजेंट अवलोकन",
designPreview: "Design पूर्वावलोकन",
settingsDesign: "सेटिंग्स — Design",
teamDesign: "टीम - Design",
},
},
"ar-SA": {
pages: {
presentExitHint: "اضغط على Esc للخروج",
notFoundDescription: "الصفحة التي تبحث عنها غير موجودة.",
notFoundBackToDesigns: "العودة إلى التصاميم",
},
designEditor: {
exportHtml: "تصدير HTML",
exportPdf: "تصدير PDF",
designTools: "أدوات Design",
drawOnCanvas: "ارسم على القماش",
dropCommentPin: "إسقاط دبوس التعليق",
presentInThisTab: "في علامة التبويب هذه",
presentFullscreen: "ملء الشاشة",
presentNewTab: "علامة تبويب جديدة",
addTweaks: "أضف تعديلات",
addTweakControls: "إضافة الضوابط القرص",
closeTweaks: "إغلاق القرص",
tweaksDocs: "معرفة المزيد.",
noTweakControls: "لا توجد ضوابط قرص حتى الآن.",
extensions: "الإضافات",
addExtension: "إضافة",
extensionsDocs: "المستندات",
extensionsPromptTitle: "ماذا يجب أن تفعل هذه الإضافة؟",
extensionsPlaceholder: "أدوات النمط، مساعدات التحديد، إجراءات اللوحة...",
extensionsEmptyTitle: "لا توجد إضافات للمحرر بعد",
extensionsEmptyDescription:
"أنشئ إضافة صغيرة للمفتش يمكنها قراءة العنصر المحدد، أو استدعاء الإجراءات، أو طلب تحديث اللوحة من الوكيل.",
extensionsAvailable: "متاحة",
extensionsInstall: "إضافة",
extensionsInstallError: "فشل تثبيت الامتداد",
designPreview: "معاينة Design",
presentMode: "الوضع الحالي",
useThisDirection: "استخدم هذا الاتجاه",
variantHandoffHelp: "الصق هذا الملخص في وكيل الترميز الخاص بك للمتابعة.",
summaryCopied: "تم نسخ الملخص",
selectSummaryToCopy: "حدد الملخص لنسخه",
dismiss: "إغلاق",
copied: "تم النسخ",
copySummary: "نسخ الملخص",
closeAllTabs: "إغلاق الكل",
closeOtherTabs: "إغلاق أخرى",
closeTab: "إغلاق",
fitToScreen: "صالح للشاشة",
},
promptDialog: {
assetsTitle: "Assets",
assetsImagePicker: "Assets منتقي الصور",
loadingAssetsPicker: "تحميل منتقي Assets",
assetAdded: "تمت إضافة الأصول",
assetsNoImageUrl: "لم تُرجع Assets عنوان URL للصورة.",
failedToUploadFile: "فشل تحميل الملف",
designSystem: "نظام Design",
noDesignSystem: "لا يوجد نظام التصميم",
newDesignSystem: "جديد",
addAttachment: "أضف",
removeAttachment: "إزالة {{name}}",
uploadFile: "تحميل الملف",
uploadFileDescription: "الصور، PDFs، النص/الرمز",
pickAsset: "اختر الأصول",
pickAssetDescription: "تصفح أو توليد الصور",
},
visualEditor: {
typeAnnotation: "اكتب تعليقًا توضيحيًا...",
typeAnnotationFancy: "اكتب تعليقًا توضيحيًا...",
typeAnywhere: "اكتب في أي مكان",
typeAnywhereOnCanvas: "اكتب في أي مكان على القماش",
clearAll: "مسح الكل",
exitDrawMode: "الخروج من وضع الرسم",
undoStroke: "التراجع عن السكتة الدماغية",
redoStroke: "إعادة السكتة الدماغية",
tellAgentWhatToDo: "أخبر الوكيل بما يجب عليك فعله ...",
clickToDropCommentPin: "انقر في أي مكان لإسقاط دبوس التعليق",
editDesign: "تحرير التصميم",
escToExit: "Esc للخروج",
tellAgentWhatToChange: "أخبر الوكيل بما يجب تغييره...",
changesSaveWhenReconnected: "سيتم حفظ التغييرات عند إعادة الاتصال",
changesDiscarded:
"تعذّر حفظ بعض التغييرات لأن الملف لم يعد موجودًا، وتم تجاهلها.",
offline: "غير متصل",
saving: "جارٍ الحفظ...",
clearedAllAnnotations: "تم مسح جميع التعليقات التوضيحية",
annotationsDiscardedOnViewChange:
"تم تجاهل {{count}} من التعليقات التوضيحية غير المُرسَلة عند مغادرة هذا العرض.",
undo: "تراجع",
send: "إرسال",
sendingDrawing: "جارٍ الإرسال…",
commentSent: "تم إرسال التعليق",
comment: "تعليق",
},
home: {
pageTitle: "Designs",
searchPlaceholder: "تصاميم البحث...",
newDesign: "جديد Design",
newDesignLower: "تصميم جديد",
createDesignProject: "إنشاء مشروع تصميم",
openingDesign: "جارٍ فتح التصميم...",
skipToEditor: "الانتقال إلى المحرر",
failedToCreateDesign: "تعذر إنشاء التصميم",
describeBuild: "صف ما تريد إنشاءه...",
selected: "تم تحديد {{count}}",
clearVisibleSelection: "مسح التحديد المرئي",
selectVisibleDesigns: "حدد التصاميم المرئية",
clearSelection: "مسح التحديد",
delete: "حذف",
selectDesign: "حدد {{title}}",
actionsForDesign: "إجراءات لـ {{title}}",
rename: "إعادة تسمية",
duplicate: "مكررة",
renameDesign: "إعادة تسمية التصميم",
designName: "اسم Design",
cancel: "إلغاء",
save: "حفظ",
deleteDesignTitle: "هل تريد حذف Design؟",
deleteDesignsTitle: "هل تريد حذف {{count}} Designs؟",
deleteSingleDesignsTitle: "هل تريد حذف {{count}} Design؟",
deleteDesignDescription:
"سيؤدي هذا إلى حذف هذا التصميم وجميع ملفاته نهائيًا. لا يمكن التراجع عن هذا الإجراء.",
deleteDesignsDescription:
"سيؤدي هذا إلى حذف تصميمات {{count}} وجميع ملفاتها نهائيًا. لا يمكن التراجع عن هذا الإجراء.",
untitledDesign: "بدون عنوان Design",
createFirstDesign: "قم بإنشاء تصميمك الأول",
pickStartingPoint: "اختر نقطة بداية أو اكتب مطالبتك الخاصة.",
starterSaas: "الصفحة المقصودة SaaS",
starterDashboard: "لوحة المعلومات",
starterPricing: "صفحة التسعير",
starterMobile: "تطبيق الجوال",
prototype: "نموذج أولي",
other: "أخرى",
designPreview: "معاينة Design",
},
templatesPage: {
title: "قوالب التسويق",
description:
"تصميمات بداية بحجم وقابلة للتحرير لعمليات الإطلاق والإعلانات والطوابق والأحداث ونشرات PDF.",
brand: "العلامة التجارية: {{title}}",
useTemplate: "استخدم القالب",
socialSquare: "الساحة الاجتماعية",
formatQuestion: "ما التنسيق الذي يجب أن يستهدفه {{title}}؟",
formatHeader: "التنسيق",
desktop: "سطح المكتب",
mobile: "الجوال",
tablet: "الجهاز اللوحي",
},
routeTitles: {
notFound: "غير موجود - Design",
designSystems: "أنظمة التصميم",
designSystemSetup: "إعداد نظام التصميم",
designEditor: "محرر Design",
designTemplates: "قوالب Design",
toolDesign: "أداة — Design",
extensionsDesign: "الإضافات — Design",
agentObservability: "مراقبة الوكيل",
designPreview: "معاينة Design",
settingsDesign: "الإعدادات — Design",
teamDesign: "الفريق - Design",
},
},
} satisfies Record, PartialMessages>;
const designExactEnglishOverrides = {
"zh-TW": {},
"zh-CN": {
pages: {
presentExitHint: "按 Esc 退出",
notFoundDescription: "您要查找的页面不存在。",
notFoundSignIn: "登录",
notFoundBackToDesigns: "返回设计",
},
designSystemSetup: {
codeFilePatterns:
"文件类型: .css、.scss、tailwind.config.*、theme.*、tokens.*、design.md、package.json",
},
designEditor: {
backToDesigns: "返回设计",
clickToRename: "点击重命名",
collaborators: "协作者",
copyCodingHandoff: "复制编码交接",
currentScreen: "当前屏幕",
designExport: "Design 导出",
devicePreview: "设备预览",
downloadHtml: "下载 HTML",
downloadPng: "下载 PNG",
downloadSvg: "下载 SVG",
downloadZip: "下载 ZIP",
generateDesign: "生成设计",
generatePlaceholder: "描述您想要构建的内容...",
generating: "正在生成设计...",
generationMayHaveStopped:
"生成可能在创建文件前停止。请查看代理消息或重试。",
generationMayHaveStoppedToast: "生成可能在创建文件前停止。",
generationStoppedCheckAgent:
"生成在创建文件前停止。请查看代理消息或重试。",
generationStoppedRetry: "生成在创建文件前停止。请重试以从同一提示继续。",
hideTweaks: "隐藏调整",
newPrompt: "新提示",
noFiles: "还没有文件。请让代理生成设计。",
notFound: "未找到设计",
openScreenOverview: "打开屏幕概览",
pickDirection: "选择方向",
pinComment: "固定评论",
returnToCurrentScreen: "返回当前屏幕",
screenOverview: "屏幕概览",
showTweaks: "显示调整",
stopPinningComments: "停止固定评论",
tryAgain: "重试",
tweaksPlaceholder: "强调色选项、密度、圆角、深色模式...",
tweaksPromptTitle: "您想要哪些调整?",
zoomIn: "放大",
zoomOut: "缩小",
toasts: {
clipboardBlocked: "剪贴板被阻止",
codingHandoffCopied: "编码交接已复制",
codingHandoffError: "无法创建编码交接",
htmlCreateError: "无法创建 HTML 下载",
htmlDownloaded: "HTML 已下载",
htmlExportError: "无法导出 HTML",
openScreenPng: "导出 PNG 前请先打开一个屏幕",
openScreenSvg: "导出 SVG 前请先打开一个屏幕",
pngCreateError: "无法创建 PNG 下载",
pngDownloaded: "PNG 已下载",
pngCopied: "PNG 已复制到剪贴板",
pngClipboardUnsupported: "此浏览器无法将 PNG 图像复制到剪贴板",
pngClipboardBlocked: "请允许访问剪贴板以复制此 PNG",
pngClipboardWriteError: "无法将 PNG 复制到剪贴板",
pngLivePreviewUnavailable: "URL 支持的屏幕暂不支持 PNG 捕获",
pngReadOnlyUnavailable: "只读预览不支持 PNG 捕获",
pngExportError: "无法导出 PNG",
pngSaveError: "无法保存 PNG",
svgDownloaded: "SVG 已下载",
svgExportError: "无法导出 SVG",
figmaSvgCopied: "已复制为 Figma SVG",
figmaSvgDownloaded: "Figma SVG 已下载",
figmaSvgUnsupported: "此浏览器无法将 SVG 图像复制到剪贴板",
figmaSvgBlocked: "请允许访问剪贴板以复制此 SVG",
figmaSvgWriteError: "无法将 SVG 复制到剪贴板",
figmaSvgRenderError: "无法创建 Figma SVG",
figmaSvgExportError: "无法导出 Figma SVG",
zipCreateError: "无法创建 ZIP 下载",
zipDownloaded: "ZIP 已下载",
zipExportError: "无法导出 ZIP",
},
},
routeTitles: {
toolDesign: "工具 — Design",
extensionsDesign: "扩展 — Design",
teamDesign: "团队 - Design",
},
},
"es-ES": {
pages: {
presentExitHint: "Pulsa Esc para salir",
notFoundDescription: "La página que buscas no existe.",
notFoundSignIn: "Iniciar sesión",
notFoundBackToDesigns: "Volver a diseños",
},
designSystemSetup: {
codeFilePatterns:
"Tipos de archivo: .css, .scss, tailwind.config.*, theme.*, tokens.*, design.md, package.json",
},
designEditor: {
backToDesigns: "Volver a diseños",
clickToRename: "Haz clic para cambiar el nombre",
collaborators: "Colaboradores",
copyCodingHandoff: "Copiar entrega para código",
currentScreen: "Pantalla actual",
designExport: "Exportación de Design",
devicePreview: "Vista previa del dispositivo",
downloadHtml: "Descargar HTML",
downloadPng: "Descargar PNG",
downloadSvg: "Descargar SVG",
downloadFigmaSvg: "Descargar para Figma (SVG)",
downloadZip: "Descargar ZIP",
generateDesign: "Generar diseño",
generatePlaceholder: "Describe lo que quieres crear...",
generating: "Generando diseño...",
generationMayHaveStopped:
"La generación puede haberse detenido antes de crear archivos. Revisa el mensaje del agente o inténtalo de nuevo.",
generationMayHaveStoppedToast:
"La generación puede haberse detenido antes de crear archivos.",
generationStoppedCheckAgent:
"La generación se detuvo antes de crear archivos. Revisa el mensaje del agente o inténtalo de nuevo.",
generationStoppedRetry:
"La generación se detuvo antes de crear archivos. Inténtalo de nuevo para continuar desde el mismo prompt.",
hideTweaks: "Ocultar ajustes",
newPrompt: "Nuevo prompt",
noFiles: "Aún no hay archivos. Pide al agente que genere un diseño.",
notFound: "Diseño no encontrado",
openScreenOverview: "Abrir resumen de pantallas",
pickDirection: "Elegir una dirección",
pinComment: "Fijar comentario",
returnToCurrentScreen: "Volver a la pantalla actual",
screenOverview: "Resumen de pantallas",
showTweaks: "Mostrar ajustes",
stopPinningComments: "Dejar de fijar comentarios",
tryAgain: "Intentar de nuevo",
tweaksPlaceholder: "Opciones de acento, densidad, radio, modo oscuro...",
tweaksPromptTitle: "¿Qué ajustes quieres?",
zoomIn: "Acercar",
zoomOut: "Alejar",
toasts: {
clipboardBlocked: "Portapapeles bloqueado",
codingHandoffCopied: "Entrega para código copiada",
codingHandoffError: "No se pudo crear la entrega para código",
htmlCreateError: "No se pudo crear la descarga HTML",
htmlDownloaded: "HTML descargado",
htmlExportError: "No se pudo exportar HTML",
openScreenPng: "Abre una pantalla antes de exportar PNG",
openScreenSvg: "Abre una pantalla antes de exportar SVG",
pngCreateError: "No se pudo crear la descarga PNG",
pngDownloaded: "PNG descargado",
pngCopied: "PNG copiado al portapapeles",
pngClipboardUnsupported:
"Este navegador no puede copiar imágenes PNG al portapapeles",
pngClipboardBlocked:
"Permite el acceso al portapapeles para copiar este PNG",
pngClipboardWriteError: "No se pudo copiar el PNG al portapapeles",
pngLivePreviewUnavailable:
"La captura PNG aún no está disponible para pantallas basadas en URL",
pngReadOnlyUnavailable:
"La captura PNG no está disponible en vistas previas de solo lectura",
pngExportError: "No se pudo exportar PNG",
pngSaveError: "No se pudo guardar PNG",
svgDownloaded: "SVG descargado",
svgExportError: "No se pudo exportar SVG",
figmaSvgCopied: "Copiado como Figma SVG",
figmaSvgDownloaded: "SVG de Figma descargado",
figmaSvgUnsupported:
"Este navegador no puede copiar imágenes SVG al portapapeles",
figmaSvgBlocked:
"Permite el acceso al portapapeles para copiar este SVG",
figmaSvgWriteError: "No se pudo copiar el SVG al portapapeles",
figmaSvgRenderError: "No se pudo crear el SVG de Figma",
figmaSvgExportError: "No se pudo exportar el SVG de Figma",
zipCreateError: "No se pudo crear la descarga ZIP",
zipDownloaded: "ZIP descargado",
zipExportError: "No se pudo exportar ZIP",
},
},
routeTitles: {
toolDesign: "Herramienta — Design",
extensionsDesign: "Extensiones — Design",
teamDesign: "Equipo - Design",
},
},
"fr-FR": {
pages: {
presentExitHint: "Appuyez sur Esc pour quitter",
notFoundDescription: "La page que vous recherchez n’existe pas.",
notFoundSignIn: "Se connecter",
notFoundBackToDesigns: "Retour aux designs",
},
designSystemSetup: {
codeFilePatterns:
"Types de fichiers : .css, .scss, tailwind.config.*, theme.*, tokens.*, design.md, package.json",
},
designEditor: {
backToDesigns: "Retour aux designs",
clickToRename: "Cliquer pour renommer",
collaborators: "Collaborateurs",
copyCodingHandoff: "Copier le transfert de code",
currentScreen: "Écran actuel",
designExport: "Export Design",
devicePreview: "Aperçu de l’appareil",
downloadHtml: "Télécharger HTML",
downloadPng: "Télécharger PNG",
downloadSvg: "Télécharger SVG",
downloadFigmaSvg: "Télécharger pour Figma (SVG)",
downloadZip: "Télécharger ZIP",
generateDesign: "Générer un design",
generatePlaceholder: "Décrivez ce que vous voulez créer...",
generating: "Génération du design...",
generationMayHaveStopped:
"La génération s’est peut-être arrêtée avant de créer des fichiers. Consultez le message de l’agent ou réessayez.",
generationMayHaveStoppedToast:
"La génération s’est peut-être arrêtée avant de créer des fichiers.",
generationStoppedCheckAgent:
"La génération s’est arrêtée avant de créer des fichiers. Consultez le message de l’agent ou réessayez.",
generationStoppedRetry:
"La génération s’est arrêtée avant de créer des fichiers. Réessayez pour continuer depuis le même prompt.",
hideTweaks: "Masquer les ajustements",
newPrompt: "Nouveau prompt",
noFiles:
"Aucun fichier pour le moment. Demandez à l’agent de générer un design.",
notFound: "Design introuvable",
openScreenOverview: "Ouvrir l’aperçu des écrans",
pickDirection: "Choisir une direction",
pinComment: "Épingler un commentaire",
returnToCurrentScreen: "Revenir à l’écran actuel",
screenOverview: "Aperçu des écrans",
showTweaks: "Afficher les ajustements",
stopPinningComments: "Arrêter d’épingler les commentaires",
tryAgain: "Réessayer",
tweaksPlaceholder: "Options d’accent, densité, rayon, mode sombre...",
tweaksPromptTitle: "Quels ajustements voulez-vous ?",
zoomIn: "Zoom avant",
zoomOut: "Zoom arrière",
toasts: {
clipboardBlocked: "Presse-papiers bloqué",
codingHandoffCopied: "Transfert de code copié",
codingHandoffError: "Impossible de créer le transfert de code",
htmlCreateError: "Impossible de créer le téléchargement HTML",
htmlDownloaded: "HTML téléchargé",
htmlExportError: "Impossible d’exporter HTML",
openScreenPng: "Ouvrez un écran avant d’exporter PNG",
openScreenSvg: "Ouvrez un écran avant d’exporter SVG",
pngCreateError: "Impossible de créer le téléchargement PNG",
pngDownloaded: "PNG téléchargé",
pngCopied: "PNG copié dans le presse-papiers",
pngClipboardUnsupported:
"Ce navigateur ne peut pas copier d’images PNG dans le presse-papiers",
pngClipboardBlocked:
"Autorisez l’accès au presse-papiers pour copier ce PNG",
pngClipboardWriteError:
"Impossible de copier le PNG dans le presse-papiers",
pngLivePreviewUnavailable:
"La capture PNG n’est pas encore disponible pour les écrans basés sur une URL",
pngReadOnlyUnavailable:
"La capture PNG n’est pas disponible dans les aperçus en lecture seule",
pngExportError: "Impossible d’exporter PNG",
pngSaveError: "Impossible d’enregistrer PNG",
svgDownloaded: "SVG téléchargé",
svgExportError: "Impossible d’exporter SVG",
figmaSvgCopied: "Copié en tant que SVG Figma",
figmaSvgDownloaded: "SVG Figma téléchargé",
figmaSvgUnsupported:
"Ce navigateur ne peut pas copier d’images SVG dans le presse-papiers",
figmaSvgBlocked:
"Autorisez l’accès au presse-papiers pour copier ce SVG",
figmaSvgWriteError:
"Impossible de copier le SVG dans le presse-papiers",
figmaSvgRenderError: "Impossible de créer le SVG Figma",
figmaSvgExportError: "Impossible d’exporter le SVG Figma",
zipCreateError: "Impossible de créer le téléchargement ZIP",
zipDownloaded: "ZIP téléchargé",
zipExportError: "Impossible d’exporter ZIP",
},
},
routeTitles: {
toolDesign: "Outil — Design",
extensionsDesign: "Modules d’extension — Design",
teamDesign: "Équipe - Design",
},
},
"de-DE": {
pages: {
presentExitHint: "Esc drücken, um zu beenden",
notFoundDescription: "Die gesuchte Seite existiert nicht.",
notFoundSignIn: "Anmelden",
notFoundBackToDesigns: "Zurück zu Designs",
},
designSystemSetup: {
codeFilePatterns:
"Dateitypen: .css, .scss, tailwind.config.*, theme.*, tokens.*, design.md, package.json",
},
designEditor: {
backToDesigns: "Zurück zu Designs",
clickToRename: "Zum Umbenennen klicken",
collaborators: "Mitwirkende",
copyCodingHandoff: "Code-Übergabe kopieren",
currentScreen: "Aktueller Bildschirm",
designExport: "Design-Export",
devicePreview: "Gerätevorschau",
downloadHtml: "HTML herunterladen",
downloadPng: "PNG herunterladen",
downloadSvg: "SVG herunterladen",
downloadFigmaSvg: "Für Figma herunterladen (SVG)",
downloadZip: "ZIP herunterladen",
generateDesign: "Design generieren",
generatePlaceholder: "Beschreiben Sie, was Sie erstellen möchten...",
generating: "Design wird generiert...",
generationMayHaveStopped:
"Die Generierung wurde möglicherweise vor dem Erstellen von Dateien gestoppt. Prüfen Sie die Agentenmeldung oder versuchen Sie es erneut.",
generationMayHaveStoppedToast:
"Die Generierung wurde möglicherweise vor dem Erstellen von Dateien gestoppt.",
generationStoppedCheckAgent:
"Die Generierung wurde vor dem Erstellen von Dateien gestoppt. Prüfen Sie die Agentenmeldung oder versuchen Sie es erneut.",
generationStoppedRetry:
"Die Generierung wurde vor dem Erstellen von Dateien gestoppt. Versuchen Sie es erneut, um mit demselben Prompt fortzufahren.",
hideTweaks: "Anpassungen ausblenden",
newPrompt: "Neuer Prompt",
noFiles:
"Noch keine Dateien. Bitten Sie den Agenten, ein Design zu generieren.",
notFound: "Design nicht gefunden",
openScreenOverview: "Bildschirmübersicht öffnen",
pickDirection: "Richtung auswählen",
pinComment: "Kommentar anheften",
returnToCurrentScreen: "Zum aktuellen Bildschirm zurückkehren",
screenOverview: "Bildschirmübersicht",
showTweaks: "Anpassungen anzeigen",
stopPinningComments: "Kommentare nicht mehr anheften",
tryAgain: "Erneut versuchen",
tweaksPlaceholder: "Akzentoptionen, Dichte, Radius, Dunkelmodus...",
tweaksPromptTitle: "Welche Anpassungen möchten Sie?",
zoomIn: "Vergrößern",
zoomOut: "Verkleinern",
toasts: {
clipboardBlocked: "Zwischenablage blockiert",
codingHandoffCopied: "Code-Übergabe kopiert",
codingHandoffError: "Code-Übergabe konnte nicht erstellt werden",
htmlCreateError: "HTML-Download konnte nicht erstellt werden",
htmlDownloaded: "HTML heruntergeladen",
htmlExportError: "HTML konnte nicht exportiert werden",
openScreenPng: "Öffnen Sie vor dem PNG-Export einen Bildschirm",
openScreenSvg: "Öffnen Sie vor dem SVG-Export einen Bildschirm",
pngCreateError: "PNG-Download konnte nicht erstellt werden",
pngDownloaded: "PNG heruntergeladen",
pngCopied: "PNG in die Zwischenablage kopiert",
pngClipboardUnsupported:
"Dieser Browser kann PNG-Bilder nicht in die Zwischenablage kopieren",
pngClipboardBlocked:
"Erlauben Sie den Zugriff auf die Zwischenablage, um dieses PNG zu kopieren",
pngClipboardWriteError:
"PNG konnte nicht in die Zwischenablage kopiert werden",
pngLivePreviewUnavailable:
"PNG-Aufnahmen sind für URL-basierte Bildschirme noch nicht verfügbar",
pngReadOnlyUnavailable:
"PNG-Aufnahmen sind in schreibgeschützten Vorschauen nicht verfügbar",
pngExportError: "PNG konnte nicht exportiert werden",
pngSaveError: "PNG konnte nicht gespeichert werden",
svgDownloaded: "SVG heruntergeladen",
svgExportError: "SVG konnte nicht exportiert werden",
figmaSvgCopied: "Als Figma-SVG kopiert",
figmaSvgDownloaded: "Figma-SVG heruntergeladen",
figmaSvgUnsupported:
"Dieser Browser kann SVG-Bilder nicht in die Zwischenablage kopieren",
figmaSvgBlocked:
"Erlauben Sie den Zugriff auf die Zwischenablage, um dieses SVG zu kopieren",
figmaSvgWriteError:
"SVG konnte nicht in die Zwischenablage kopiert werden",
figmaSvgRenderError: "Figma-SVG konnte nicht erstellt werden",
figmaSvgExportError: "Figma-SVG konnte nicht exportiert werden",
zipCreateError: "ZIP-Download konnte nicht erstellt werden",
zipDownloaded: "ZIP heruntergeladen",
zipExportError: "ZIP konnte nicht exportiert werden",
},
},
routeTitles: {
toolDesign: "Werkzeug — Design",
extensionsDesign: "Erweiterungen — Design",
teamDesign: "Team - Design-App",
},
},
"ja-JP": {
pages: {
presentExitHint: "Esc を押して終了",
notFoundDescription: "お探しのページは存在しません。",
notFoundSignIn: "ログイン",
notFoundBackToDesigns: "デザインに戻る",
},
designSystemSetup: {
codeFilePatterns:
"ファイル形式: .css、.scss、tailwind.config.*、theme.*、tokens.*、design.md、package.json",
},
designEditor: {
backToDesigns: "デザインに戻る",
clickToRename: "クリックして名前を変更",
collaborators: "共同編集者",
copyCodingHandoff: "コーディング引き継ぎをコピー",
currentScreen: "現在の画面",
designExport: "Design エクスポート",
devicePreview: "デバイスプレビュー",
downloadHtml: "HTML をダウンロード",
downloadPng: "PNG をダウンロード",
downloadSvg: "SVG をダウンロード",
downloadFigmaSvg: "Figma 用にダウンロード(SVG)",
downloadZip: "ZIP をダウンロード",
generateDesign: "デザインを生成",
generatePlaceholder: "作成したいものを説明してください...",
generating: "デザインを生成中...",
generationMayHaveStopped:
"ファイルを作成する前に生成が停止した可能性があります。エージェントのメッセージを確認するか、もう一度お試しください。",
generationMayHaveStoppedToast:
"ファイルを作成する前に生成が停止した可能性があります。",
generationStoppedCheckAgent:
"ファイルを作成する前に生成が停止しました。エージェントのメッセージを確認するか、もう一度お試しください。",
generationStoppedRetry:
"ファイルを作成する前に生成が停止しました。同じプロンプトから続行するには、もう一度お試しください。",
hideTweaks: "調整を非表示",
newPrompt: "新しいプロンプト",
noFiles:
"まだファイルがありません。エージェントにデザインの生成を依頼してください。",
notFound: "デザインが見つかりません",
openScreenOverview: "画面概要を開く",
pickDirection: "方向を選択",
pinComment: "コメントをピン留め",
returnToCurrentScreen: "現在の画面に戻る",
screenOverview: "画面概要",
showTweaks: "調整を表示",
stopPinningComments: "コメントのピン留めを停止",
tryAgain: "再試行",
tweaksPlaceholder: "アクセントオプション、密度、角丸、ダークモード...",
tweaksPromptTitle: "どのような調整をしますか?",
zoomIn: "拡大",
zoomOut: "縮小",
toasts: {
clipboardBlocked: "クリップボードがブロックされました",
codingHandoffCopied: "コーディング引き継ぎをコピーしました",
codingHandoffError: "コーディング引き継ぎを作成できませんでした",
htmlCreateError: "HTML ダウンロードを作成できませんでした",
htmlDownloaded: "HTML をダウンロードしました",
htmlExportError: "HTML をエクスポートできませんでした",
openScreenPng: "PNG をエクスポートする前に画面を開いてください",
openScreenSvg: "SVG をエクスポートする前に画面を開いてください",
pngCreateError: "PNG ダウンロードを作成できませんでした",
pngDownloaded: "PNG をダウンロードしました",
pngCopied: "PNG をクリップボードにコピーしました",
pngClipboardUnsupported:
"このブラウザでは PNG 画像をクリップボードにコピーできません",
pngClipboardBlocked:
"この PNG をコピーするにはクリップボードへのアクセスを許可してください",
pngClipboardWriteError: "PNG をクリップボードにコピーできませんでした",
pngLivePreviewUnavailable:
"URL ベースの画面では PNG キャプチャをまだ利用できません",
pngReadOnlyUnavailable:
"読み取り専用プレビューでは PNG キャプチャを利用できません",
pngExportError: "PNG をエクスポートできませんでした",
pngSaveError: "PNG を保存できませんでした",
svgDownloaded: "SVG をダウンロードしました",
svgExportError: "SVG をエクスポートできませんでした",
figmaSvgCopied: "Figma SVG としてコピーしました",
figmaSvgDownloaded: "Figma SVG をダウンロードしました",
figmaSvgUnsupported:
"このブラウザでは SVG 画像をクリップボードにコピーできません",
figmaSvgBlocked:
"この SVG をコピーするにはクリップボードへのアクセスを許可してください",
figmaSvgWriteError: "SVG をクリップボードにコピーできませんでした",
figmaSvgRenderError: "Figma SVG を作成できませんでした",
figmaSvgExportError: "Figma SVG をエクスポートできませんでした",
zipCreateError: "ZIP ダウンロードを作成できませんでした",
zipDownloaded: "ZIP をダウンロードしました",
zipExportError: "ZIP をエクスポートできませんでした",
},
},
routeTitles: {
toolDesign: "ツール — Design",
extensionsDesign: "拡張機能 — Design",
teamDesign: "チーム - Design",
},
},
"ko-KR": {
pages: {
presentExitHint: "Esc 키를 눌러 종료",
notFoundDescription: "찾고 있는 페이지가 없습니다.",
notFoundSignIn: "로그인",
notFoundBackToDesigns: "디자인으로 돌아가기",
},
designSystemSetup: {
codeFilePatterns:
"파일 형식: .css, .scss, tailwind.config.*, theme.*, tokens.*, design.md, package.json",
},
designEditor: {
backToDesigns: "디자인으로 돌아가기",
clickToRename: "클릭하여 이름 바꾸기",
collaborators: "공동 작업자",
copyCodingHandoff: "코딩 인계 복사",
currentScreen: "현재 화면",
designExport: "Design 내보내기",
devicePreview: "기기 미리보기",
downloadHtml: "HTML 다운로드",
downloadPng: "PNG 다운로드",
downloadSvg: "SVG 다운로드",
downloadFigmaSvg: "Figma용으로 다운로드(SVG)",
downloadZip: "ZIP 다운로드",
generateDesign: "디자인 생성",
generatePlaceholder: "만들고 싶은 것을 설명하세요...",
generating: "디자인 생성 중...",
generationMayHaveStopped:
"파일을 만들기 전에 생성이 중지되었을 수 있습니다. 에이전트 메시지를 확인하거나 다시 시도하세요.",
generationMayHaveStoppedToast:
"파일을 만들기 전에 생성이 중지되었을 수 있습니다.",
generationStoppedCheckAgent:
"파일을 만들기 전에 생성이 중지되었습니다. 에이전트 메시지를 확인하거나 다시 시도하세요.",
generationStoppedRetry:
"파일을 만들기 전에 생성이 중지되었습니다. 같은 프롬프트에서 계속하려면 다시 시도하세요.",
hideTweaks: "조정 숨기기",
newPrompt: "새 프롬프트",
noFiles: "아직 파일이 없습니다. 에이전트에게 디자인 생성을 요청하세요.",
notFound: "디자인을 찾을 수 없음",
openScreenOverview: "화면 개요 열기",
pickDirection: "방향 선택",
pinComment: "댓글 고정",
returnToCurrentScreen: "현재 화면으로 돌아가기",
screenOverview: "화면 개요",
showTweaks: "조정 표시",
stopPinningComments: "댓글 고정 중지",
tryAgain: "다시 시도",
tweaksPlaceholder: "강조 옵션, 밀도, 반경, 다크 모드...",
tweaksPromptTitle: "어떤 조정을 원하시나요?",
zoomIn: "확대",
zoomOut: "축소",
toasts: {
clipboardBlocked: "클립보드가 차단됨",
codingHandoffCopied: "코딩 인계가 복사됨",
codingHandoffError: "코딩 인계를 만들 수 없음",
htmlCreateError: "HTML 다운로드를 만들 수 없음",
htmlDownloaded: "HTML 다운로드됨",
htmlExportError: "HTML을 내보낼 수 없음",
openScreenPng: "PNG를 내보내기 전에 화면을 여세요",
openScreenSvg: "SVG를 내보내기 전에 화면을 여세요",
pngCreateError: "PNG 다운로드를 만들 수 없음",
pngDownloaded: "PNG 다운로드됨",
pngCopied: "PNG가 클립보드에 복사됨",
pngClipboardUnsupported:
"이 브라우저에서는 PNG 이미지를 클립보드에 복사할 수 없음",
pngClipboardBlocked: "이 PNG를 복사하려면 클립보드 접근을 허용하세요",
pngClipboardWriteError: "PNG를 클립보드에 복사할 수 없음",
pngLivePreviewUnavailable:
"URL 기반 화면에서는 아직 PNG 캡처를 사용할 수 없음",
pngReadOnlyUnavailable:
"읽기 전용 미리보기에서는 PNG 캡처를 사용할 수 없음",
pngExportError: "PNG를 내보낼 수 없음",
pngSaveError: "PNG를 저장할 수 없음",
svgDownloaded: "SVG 다운로드됨",
svgExportError: "SVG를 내보낼 수 없음",
figmaSvgCopied: "Figma SVG로 복사됨",
figmaSvgDownloaded: "Figma SVG 다운로드됨",
figmaSvgUnsupported:
"이 브라우저에서는 SVG 이미지를 클립보드에 복사할 수 없음",
figmaSvgBlocked: "이 SVG를 복사하려면 클립보드 접근을 허용하세요",
figmaSvgWriteError: "SVG를 클립보드에 복사할 수 없음",
figmaSvgRenderError: "Figma SVG를 만들 수 없음",
figmaSvgExportError: "Figma SVG를 내보낼 수 없음",
zipCreateError: "ZIP 다운로드를 만들 수 없음",
zipDownloaded: "ZIP 다운로드됨",
zipExportError: "ZIP을 내보낼 수 없음",
},
},
routeTitles: {
toolDesign: "도구 — Design",
extensionsDesign: "확장 프로그램 — Design",
teamDesign: "팀 - Design",
},
},
"pt-BR": {
pages: {
presentExitHint: "Pressione Esc para sair",
notFoundDescription: "A página que você procura não existe.",
notFoundSignIn: "Entrar",
notFoundBackToDesigns: "Voltar aos designs",
},
designSystemSetup: {
codeFilePatterns:
"Tipos de arquivo: .css, .scss, tailwind.config.*, theme.*, tokens.*, design.md, package.json",
},
designEditor: {
backToDesigns: "Voltar aos designs",
clickToRename: "Clique para renomear",
collaborators: "Colaboradores",
copyCodingHandoff: "Copiar handoff de código",
currentScreen: "Tela atual",
designExport: "Exportação de Design",
devicePreview: "Prévia do dispositivo",
downloadHtml: "Baixar HTML",
downloadPng: "Baixar PNG",
downloadSvg: "Baixar SVG",
downloadFigmaSvg: "Baixar para o Figma (SVG)",
downloadZip: "Baixar ZIP",
generateDesign: "Gerar design",
generatePlaceholder: "Descreva o que você quer criar...",
generating: "Gerando design...",
generationMayHaveStopped:
"A geração pode ter parado antes de criar arquivos. Confira a mensagem do agente ou tente novamente.",
generationMayHaveStoppedToast:
"A geração pode ter parado antes de criar arquivos.",
generationStoppedCheckAgent:
"A geração parou antes de criar arquivos. Confira a mensagem do agente ou tente novamente.",
generationStoppedRetry:
"A geração parou antes de criar arquivos. Tente novamente para continuar do mesmo prompt.",
hideTweaks: "Ocultar ajustes",
newPrompt: "Novo prompt",
noFiles: "Ainda não há arquivos. Peça ao agente para gerar um design.",
notFound: "Design não encontrado",
openScreenOverview: "Abrir visão geral das telas",
pickDirection: "Escolher uma direção",
pinComment: "Fixar comentário",
returnToCurrentScreen: "Voltar à tela atual",
screenOverview: "Visão geral das telas",
showTweaks: "Mostrar ajustes",
stopPinningComments: "Parar de fixar comentários",
tryAgain: "Tentar novamente",
tweaksPlaceholder: "Opções de destaque, densidade, raio, modo escuro...",
tweaksPromptTitle: "Quais ajustes você quer?",
zoomIn: "Aumentar zoom",
zoomOut: "Diminuir zoom",
toasts: {
clipboardBlocked: "Área de transferência bloqueada",
codingHandoffCopied: "Handoff de código copiado",
codingHandoffError: "Não foi possível criar o handoff de código",
htmlCreateError: "Não foi possível criar o download HTML",
htmlDownloaded: "HTML baixado",
htmlExportError: "Não foi possível exportar HTML",
openScreenPng: "Abra uma tela antes de exportar PNG",
openScreenSvg: "Abra uma tela antes de exportar SVG",
pngCreateError: "Não foi possível criar o download PNG",
pngDownloaded: "PNG baixado",
pngCopied: "PNG copiado para a área de transferência",
pngClipboardUnsupported:
"Este navegador não pode copiar imagens PNG para a área de transferência",
pngClipboardBlocked:
"Permita o acesso à área de transferência para copiar este PNG",
pngClipboardWriteError:
"Não foi possível copiar o PNG para a área de transferência",
pngLivePreviewUnavailable:
"A captura PNG ainda não está disponível para telas baseadas em URL",
pngReadOnlyUnavailable:
"A captura PNG não está disponível em visualizações somente leitura",
pngExportError: "Não foi possível exportar PNG",
pngSaveError: "Não foi possível salvar PNG",
svgDownloaded: "SVG baixado",
svgExportError: "Não foi possível exportar SVG",
figmaSvgCopied: "Copiado como Figma SVG",
figmaSvgDownloaded: "SVG do Figma baixado",
figmaSvgUnsupported:
"Este navegador não pode copiar imagens SVG para a área de transferência",
figmaSvgBlocked:
"Permita o acesso à área de transferência para copiar este SVG",
figmaSvgWriteError:
"Não foi possível copiar o SVG para a área de transferência",
figmaSvgRenderError: "Não foi possível criar o Figma SVG",
figmaSvgExportError: "Não foi possível exportar o Figma SVG",
zipCreateError: "Não foi possível criar o download ZIP",
zipDownloaded: "ZIP baixado",
zipExportError: "Não foi possível exportar ZIP",
},
},
routeTitles: {
toolDesign: "Ferramenta — Design",
extensionsDesign: "Extensões — Design",
teamDesign: "Equipe - Design",
},
},
"hi-IN": {
pages: {
presentExitHint: "बाहर निकलने के लिए Esc दबाएँ",
notFoundDescription: "आप जिस पृष्ठ को ढूँढ रहे हैं वह मौजूद नहीं है।",
notFoundSignIn: "साइन इन करें",
notFoundBackToDesigns: "डिज़ाइन पर वापस जाएँ",
},
designSystemSetup: {
codeFilePatterns:
"फ़ाइल प्रकार: .css, .scss, tailwind.config.*, theme.*, tokens.*, design.md, package.json",
},
designEditor: {
backToDesigns: "डिज़ाइन पर वापस जाएँ",
clickToRename: "नाम बदलने के लिए क्लिक करें",
collaborators: "सहयोगी",
copyCodingHandoff: "कोडिंग हैंडऑफ़ कॉपी करें",
currentScreen: "वर्तमान स्क्रीन",
designExport: "Design निर्यात",
devicePreview: "डिवाइस पूर्वावलोकन",
downloadHtml: "HTML डाउनलोड करें",
downloadPng: "PNG डाउनलोड करें",
downloadSvg: "SVG डाउनलोड करें",
downloadFigmaSvg: "Figma के लिए डाउनलोड करें (SVG)",
downloadZip: "ZIP डाउनलोड करें",
generateDesign: "डिज़ाइन जनरेट करें",
generatePlaceholder: "बताएँ कि आप क्या बनाना चाहते हैं...",
generating: "डिज़ाइन जनरेट हो रहा है...",
generationMayHaveStopped:
"फ़ाइलें बनाने से पहले जनरेशन रुक गया हो सकता है। एजेंट संदेश देखें या फिर कोशिश करें।",
generationMayHaveStoppedToast: "फ़ाइलें बनाने से पहले जनरेशन रुक गया हो सकता है।",
generationStoppedCheckAgent:
"फ़ाइलें बनाने से पहले जनरेशन रुक गया। एजेंट संदेश देखें या फिर कोशिश करें।",
generationStoppedRetry:
"फ़ाइलें बनाने से पहले जनरेशन रुक गया। उसी प्रॉम्प्ट से जारी रखने के लिए फिर कोशिश करें।",
hideTweaks: "बदलाव छिपाएँ",
newPrompt: "नया प्रॉम्प्ट",
noFiles: "अभी कोई फ़ाइल नहीं है। एजेंट से डिज़ाइन जनरेट करने को कहें।",
notFound: "डिज़ाइन नहीं मिला",
openScreenOverview: "स्क्रीन अवलोकन खोलें",
pickDirection: "दिशा चुनें",
pinComment: "टिप्पणी पिन करें",
returnToCurrentScreen: "वर्तमान स्क्रीन पर लौटें",
screenOverview: "स्क्रीन अवलोकन",
showTweaks: "बदलाव दिखाएँ",
stopPinningComments: "टिप्पणियाँ पिन करना रोकें",
tryAgain: "फिर कोशिश करें",
tweaksPlaceholder: "एक्सेंट विकल्प, घनत्व, रेडियस, डार्क मोड...",
tweaksPromptTitle: "आप कौन से बदलाव चाहते हैं?",
zoomIn: "ज़ूम इन",
zoomOut: "ज़ूम आउट",
toasts: {
clipboardBlocked: "क्लिपबोर्ड अवरुद्ध है",
codingHandoffCopied: "कोडिंग हैंडऑफ़ कॉपी हुआ",
codingHandoffError: "कोडिंग हैंडऑफ़ नहीं बनाया जा सका",
htmlCreateError: "HTML डाउनलोड नहीं बनाया जा सका",
htmlDownloaded: "HTML डाउनलोड हुआ",
htmlExportError: "HTML निर्यात नहीं किया जा सका",
openScreenPng: "PNG निर्यात करने से पहले कोई स्क्रीन खोलें",
openScreenSvg: "SVG निर्यात करने से पहले कोई स्क्रीन खोलें",
pngCreateError: "PNG डाउनलोड नहीं बनाया जा सका",
pngDownloaded: "PNG डाउनलोड हुआ",
pngCopied: "PNG क्लिपबोर्ड पर कॉपी हुआ",
pngClipboardUnsupported:
"यह ब्राउज़र PNG छवियों को क्लिपबोर्ड पर कॉपी नहीं कर सकता",
pngClipboardBlocked:
"इस PNG को कॉपी करने के लिए क्लिपबोर्ड एक्सेस की अनुमति दें",
pngClipboardWriteError: "PNG को क्लिपबोर्ड पर कॉपी नहीं किया जा सका",
pngLivePreviewUnavailable:
"URL-आधारित स्क्रीन के लिए PNG कैप्चर अभी उपलब्ध नहीं है",
pngReadOnlyUnavailable: "केवल-पढ़ने वाले पूर्वावलोकन में PNG कैप्चर उपलब्ध नहीं है",
pngExportError: "PNG निर्यात नहीं किया जा सका",
pngSaveError: "PNG सहेजा नहीं जा सका",
svgDownloaded: "SVG डाउनलोड हुआ",
svgExportError: "SVG निर्यात नहीं किया जा सका",
figmaSvgCopied: "Figma SVG के रूप में कॉपी हुआ",
figmaSvgDownloaded: "Figma SVG डाउनलोड हुआ",
figmaSvgUnsupported:
"यह ब्राउज़र SVG छवियों को क्लिपबोर्ड पर कॉपी नहीं कर सकता",
figmaSvgBlocked: "इस SVG को कॉपी करने के लिए क्लिपबोर्ड एक्सेस की अनुमति दें",
figmaSvgWriteError: "SVG को क्लिपबोर्ड पर कॉपी नहीं किया जा सका",
figmaSvgRenderError: "Figma SVG नहीं बनाया जा सका",
figmaSvgExportError: "Figma SVG निर्यात नहीं किया जा सका",
zipCreateError: "ZIP डाउनलोड नहीं बनाया जा सका",
zipDownloaded: "ZIP डाउनलोड हुआ",
zipExportError: "ZIP निर्यात नहीं किया जा सका",
},
},
routeTitles: {
toolDesign: "टूल — Design",
extensionsDesign: "एक्सटेंशन — Design",
teamDesign: "टीम - Design",
},
},
"ar-SA": {
pages: {
presentExitHint: "اضغط على Esc للخروج",
notFoundDescription: "الصفحة التي تبحث عنها غير موجودة.",
notFoundSignIn: "تسجيل الدخول",
notFoundBackToDesigns: "العودة إلى التصاميم",
},
designSystemSetup: {
codeFilePatterns:
"أنواع الملفات: .css و.scss وtailwind.config.* وtheme.* وtokens.* وdesign.md وpackage.json",
},
designEditor: {
backToDesigns: "العودة إلى التصاميم",
clickToRename: "انقر لإعادة التسمية",
collaborators: "المتعاونون",
copyCodingHandoff: "نسخ تسليم الترميز",
currentScreen: "الشاشة الحالية",
designExport: "تصدير Design",
devicePreview: "معاينة الجهاز",
downloadHtml: "تنزيل HTML",
downloadPng: "تنزيل PNG",
downloadSvg: "تنزيل SVG",
downloadFigmaSvg: "تنزيل لـ Figma (SVG)",
downloadZip: "تنزيل ZIP",
generateDesign: "إنشاء التصميم",
generatePlaceholder: "صف ما تريد إنشاءه...",
generating: "جارٍ إنشاء التصميم...",
generationMayHaveStopped:
"ربما توقّف الإنشاء قبل إنشاء الملفات. تحقق من رسالة الوكيل أو حاول مرة أخرى.",
generationMayHaveStoppedToast: "ربما توقّف الإنشاء قبل إنشاء الملفات.",
generationStoppedCheckAgent:
"توقف الإنشاء قبل إنشاء الملفات. تحقق من رسالة الوكيل أو حاول مرة أخرى.",
generationStoppedRetry:
"توقف الإنشاء قبل إنشاء الملفات. حاول مرة أخرى للمتابعة من نفس المطالبة.",
hideTweaks: "إخفاء التعديلات",
newPrompt: "مطالبة جديدة",
noFiles: "لا توجد ملفات بعد. اطلب من الوكيل إنشاء تصميم.",
notFound: "التصميم غير موجود",
openScreenOverview: "فتح نظرة عامة على الشاشة",
pickDirection: "اختر اتجاهًا",
pinComment: "تثبيت تعليق",
returnToCurrentScreen: "العودة إلى الشاشة الحالية",
screenOverview: "نظرة عامة على الشاشة",
showTweaks: "إظهار التعديلات",
stopPinningComments: "إيقاف تثبيت التعليقات",
tryAgain: "حاول مرة أخرى",
tweaksPlaceholder: "خيارات التمييز، الكثافة، نصف القطر، الوضع الداكن...",
tweaksPromptTitle: "ما التعديلات التي تريدها؟",
zoomIn: "تكبير",
zoomOut: "تصغير",
toasts: {
clipboardBlocked: "تم حظر الحافظة",
codingHandoffCopied: "تم نسخ تسليم الترميز",
codingHandoffError: "تعذر إنشاء تسليم الترميز",
htmlCreateError: "تعذر إنشاء تنزيل HTML",
htmlDownloaded: "تم تنزيل HTML",
htmlExportError: "تعذر تصدير HTML",
openScreenPng: "افتح شاشة قبل تصدير PNG",
openScreenSvg: "افتح شاشة قبل تصدير SVG",
pngCreateError: "تعذر إنشاء تنزيل PNG",
pngDownloaded: "تم تنزيل PNG",
pngCopied: "تم نسخ PNG إلى الحافظة",
pngClipboardUnsupported: "لا يمكن لهذا المتصفح نسخ صور PNG إلى الحافظة",
pngClipboardBlocked: "اسمح بالوصول إلى الحافظة لنسخ ملف PNG هذا",
pngClipboardWriteError: "تعذر نسخ PNG إلى الحافظة",
pngLivePreviewUnavailable:
"التقاط PNG غير متاح بعد للشاشات المستندة إلى عنوان URL",
pngReadOnlyUnavailable:
"التقاط PNG غير متاح في المعاينات المخصصة للقراءة فقط",
pngExportError: "تعذر تصدير PNG",
pngSaveError: "تعذر حفظ PNG",
svgDownloaded: "تم تنزيل SVG",
svgExportError: "تعذر تصدير SVG",
figmaSvgCopied: "تم النسخ كملف Figma SVG",
figmaSvgDownloaded: "تم تنزيل ملف Figma SVG",
figmaSvgUnsupported: "لا يمكن لهذا المتصفح نسخ صور SVG إلى الحافظة",
figmaSvgBlocked: "اسمح بالوصول إلى الحافظة لنسخ ملف SVG هذا",
figmaSvgWriteError: "تعذر نسخ SVG إلى الحافظة",
figmaSvgRenderError: "تعذر إنشاء Figma SVG",
figmaSvgExportError: "تعذر تصدير Figma SVG",
zipCreateError: "تعذر إنشاء تنزيل ZIP",
zipDownloaded: "تم تنزيل ZIP",
zipExportError: "تعذر تصدير ZIP",
},
},
routeTitles: {
toolDesign: "أداة — Design",
extensionsDesign: "الإضافات — Design",
teamDesign: "الفريق - Design",
},
},
} satisfies Record, PartialMessages>;
const designModeFeatureOverrides = {
"zh-TW": {
editPanel: {
sections: {
autoLayout: "自動布局",
positionLayout: "位置",
stroke: "描邊",
effects: "效果",
codeConfidence: "程式碼",
},
labels: {
flexGrow: "增長",
flexShrink: "收縮",
flexBasis: "基準",
order: "順序",
alignSelf: "自身對齊",
gridColumn: "欄",
gridRow: "列",
position: "位置",
display: "顯示",
image: "圖片",
style: "樣式",
shadow: "陰影",
filter: "濾鏡",
},
selection: { pageContext: "頁面預設" },
layoutContext: {
container: "容器",
child: "子層",
gridChild: "格線子層",
parent: "父層",
flexContainer: "彈性",
notContainer: "一般流",
flexChild: "彈性子層",
flowChild: "流式子層",
flowDescription:
"此圖層位於一般文件流中。可使用位置控制進行明確偏移,或請代理調整結構布局。",
},
codeStatus: {
safeStyle: "安全樣式編輯",
safeStyleDescription:
"這些控制項會先套用即時樣式,再持久寫回 HTML 原始碼。",
classTarget: "穩定 class/id 目標",
selectorFallback: "選擇器備援",
agentStructural: "結構移動需要代理",
agentStructuralDescription:
"移動、包裹層與父層布局重寫需要代理保留意圖。",
},
alignSelfOptions: {
auto: "自動",
start: "起點",
center: "置中",
end: "終點",
stretch: "延展",
baseline: "基線",
},
displayOptions: {
block: "區塊",
flex: "彈性",
grid: "格線",
inline: "行內",
inlineBlock: "行內區塊",
none: "無",
},
positionOptions: {
static: "靜態",
relative: "相對",
absolute: "絕對",
fixed: "固定",
sticky: "黏著",
},
borderStyleOptions: {
none: "無",
solid: "實線",
dashed: "虛線",
dotted: "點線",
double: "雙線",
},
},
designEditor: {
patchProof: {
title: "補丁證明",
file: "檔案",
source: "來源",
capability: "能力",
pending: "已套用即時預覽;來源寫入待處理",
verified: "來源寫入已驗證;可回復",
rollback: "回復",
keep: "保留",
selectorMissing: "選取的元素已不在此畫面中。",
status: {
runtime: "已套用即時樣式",
queued: "正在寫入來源補丁",
applied: "補丁已套用",
failed: "補丁失敗",
rolledBack: "已回復",
},
},
capabilities: {
"deterministic-style-edit": "安全樣式編輯",
"deterministic-class-edit": "安全 class 編輯",
"agent-structural-edit": "結構移動需要代理",
},
toasts: {
screenDuplicated: "畫面已複製",
screenDuplicateError: "無法複製畫面",
},
},
multiScreenCanvas: {
duplicate: "複製",
fork: "分支",
fullView: "完整檢視",
preview: "預覽",
openAndDuplicate: "選取 {{display}}。使用互動模式進行聚焦捲動。",
openAndPreview: "選取 {{display}}。使用互動模式進行聚焦捲動。",
doubleClickToEdit: "使用互動模式進行聚焦捲動",
sources: {
localhost: { label: "本機", title: "由本機開發伺服器渲染" },
fusion: { label: "Fusion 遠端", title: "由 Fusion 渲染" },
inline: { label: "內嵌", title: "由內嵌程式碼渲染" },
},
previews: {
live: { label: "即時", shortLabel: "即時框架", title: "即時預覽" },
snapshot: { label: "快照", shortLabel: "快照", title: "靜態快取快照" },
preview: { label: "預覽", shortLabel: "預覽", title: "內嵌預覽" },
},
},
questionFlow: {
defaultTitle: "先塑造設計",
defaultDescription: "回答高槓桿選項。代理可判斷的部分可以略過。",
multiSelectHelp: "多選題可選多個籤。方向很精確時請使用其他。",
ready: "已可繼續。",
answerRequired: "回答必填卡片後才能繼續。",
chooseAny: "選取所有適用項目",
chooseOne: "選擇一項",
textPlaceholder: "輸入您的回答...",
selectUseful: "選取所有有用項目。",
otherDescription: "清楚告訴代理您的意思。",
customPlaceholder: "輸入自訂回答...",
dragFiles: "將檔案拖到這裡或",
exploreLabel: "探索幾個選項",
exploreDescription: "定案前先展示不同方向。",
decideLabel: "幫我決定",
decideDescription: "用判斷力繼續推進。",
},
visualEditor: {
annotationQueue: "註記佇列",
batchApply: "批次套用",
pinStatus: {
deterministic: {
detail: "已錨定到圖層或選擇器,通常可直接處理。",
},
"needs-agent": {
label: "需要代理",
detail: "需要解讀,或只有畫布位置脈絡。",
},
conflict: {
detail: "可能與另一個佇列中的註解重疊或衝突。",
},
unsupported: {
detail: "可能超出此畫布編輯範圍。",
},
},
},
},
"zh-CN": {
editPanel: {
sections: {
autoLayout: "自动布局",
positionLayout: "位置",
stroke: "描边",
effects: "效果",
codeConfidence: "代码",
},
labels: {
flexGrow: "增长",
flexShrink: "收缩",
flexBasis: "基准",
order: "顺序",
alignSelf: "自身对齐",
gridColumn: "列",
gridRow: "行",
position: "位置",
display: "显示",
image: "图片",
style: "样式",
shadow: "阴影",
filter: "滤镜",
},
selection: { pageContext: "页面默认" },
layoutContext: {
container: "容器",
child: "子层",
gridChild: "网格子层",
parent: "父层",
flexContainer: "弹性",
notContainer: "普通流",
flexChild: "弹性子层",
flowChild: "流式子层",
flowDescription:
"此图层位于普通文档流中。可使用位置控制设置明确偏移,或请代理调整结构布局。",
},
codeStatus: {
safeStyle: "安全样式编辑",
safeStyleDescription:
"这些控件会先即时应用样式,然后持久写回 HTML 源码。",
classTarget: "稳定 class/id 目标",
selectorFallback: "选择器备用",
agentStructural: "结构移动需要代理",
agentStructuralDescription:
"移动、包裹层和父级布局重写需要代理保留意图。",
},
alignSelfOptions: {
auto: "自动",
start: "起点",
center: "居中",
end: "终点",
stretch: "拉伸",
baseline: "基线",
},
displayOptions: {
block: "块级",
flex: "弹性",
grid: "网格",
inline: "行内",
inlineBlock: "行内块",
none: "无",
},
positionOptions: {
static: "静态",
relative: "相对",
absolute: "绝对",
fixed: "固定",
sticky: "粘性",
},
borderStyleOptions: {
none: "无",
solid: "实线",
dashed: "虚线",
dotted: "点线",
double: "双线",
},
},
designEditor: {
patchProof: {
title: "补丁证明",
file: "文件",
source: "来源",
capability: "能力",
pending: "已应用即时预览;源码写入待处理",
verified: "源码写入已验证;可回滚",
rollback: "回滚",
keep: "保留",
selectorMissing: "选中的元素已不在此屏幕中。",
status: {
runtime: "已应用即时样式",
queued: "正在写入源码补丁",
applied: "补丁已应用",
failed: "补丁失败",
rolledBack: "已回滚",
},
},
capabilities: {
"deterministic-style-edit": "安全样式编辑",
"deterministic-class-edit": "安全 class 编辑",
"agent-structural-edit": "结构移动需要代理",
},
toasts: {
screenDuplicated: "屏幕已复制",
screenDuplicateError: "无法复制屏幕",
},
},
multiScreenCanvas: {
duplicate: "复制",
fork: "分支",
fullView: "完整视图",
preview: "预览",
openAndDuplicate: "选择 {{display}}。使用互动模式进行聚焦滚动。",
openAndPreview: "选择 {{display}}。使用互动模式进行聚焦滚动。",
doubleClickToEdit: "使用互动模式进行聚焦滚动",
sources: {
localhost: { label: "本机", title: "由本地开发服务器渲染" },
fusion: { label: "Fusion 远端", title: "由 Fusion 渲染" },
inline: { label: "内嵌", title: "由内嵌代码渲染" },
},
previews: {
live: { label: "实时", shortLabel: "实时框架", title: "实时预览" },
snapshot: { label: "快照", shortLabel: "快照", title: "静态缓存快照" },
preview: { label: "预览", shortLabel: "预览", title: "内嵌预览" },
},
},
questionFlow: {
defaultTitle: "先明确设计方向",
defaultDescription: "回答高影响选择。代理可以判断的部分可跳过。",
multiSelectHelp: "多选题可选择多个标签。方向很精确时请使用其他。",
ready: "可以继续。",
answerRequired: "回答必填卡片后才能继续。",
chooseAny: "选择所有适用项",
chooseOne: "选择一项",
textPlaceholder: "输入你的回答...",
selectUseful: "选择所有有用项。",
otherDescription: "清楚告诉代理你的意思。",
customPlaceholder: "输入自定义回答...",
dragFiles: "将文件拖到这里或",
exploreLabel: "探索几个选项",
exploreDescription: "定案前先展示不同方向。",
decideLabel: "帮我决定",
decideDescription: "用判断力继续推进。",
},
visualEditor: {
annotationQueue: "标注队列",
batchApply: "批量应用",
pinStatus: {
deterministic: {
detail: "已锚定到图层或选择器,通常可直接处理。",
},
"needs-agent": {
label: "需要代理",
detail: "需要解读,或只有画布位置上下文。",
},
conflict: {
detail: "可能与另一个队列评论重叠或冲突。",
},
unsupported: {
detail: "可能超出此画布编辑范围。",
},
},
},
},
"es-ES": {
editPanel: {
sections: {
autoLayout: "Diseño automático",
positionLayout: "Posición",
stroke: "Trazo",
effects: "Efectos",
codeConfidence: "Código",
},
labels: {
flexGrow: "Crecer",
flexShrink: "Encoger",
flexBasis: "Base",
order: "Orden",
alignSelf: "Autoalinear",
gridColumn: "Columna",
gridRow: "Fila",
position: "Posición",
display: "Visualización",
image: "Imagen",
style: "Estilo",
shadow: "Sombra",
filter: "Filtro",
},
selection: { pageContext: "Predeterminados de página" },
layoutContext: {
container: "Contenedor",
child: "Hijo",
gridChild: "Hijo de cuadrícula",
parent: "Padre",
flexContainer: "Flexible",
notContainer: "Flujo",
flexChild: "Hijo flexible",
flowChild: "Hijo en flujo",
flowDescription:
"Esta capa está en el flujo normal del documento. Usa posición para offsets explícitos o pide al agente cambios estructurales.",
},
codeStatus: {
safeStyle: "Edición segura de estilo",
safeStyleDescription:
"Estos controles aplican estilos al instante y luego persisten el HTML.",
classTarget: "Objetivo class/id estable",
selectorFallback: "Selector de respaldo",
agentStructural: "Agente necesario para movimientos estructurales",
agentStructuralDescription:
"Mover, envolver y reescribir el layout padre requiere preservar intención.",
},
alignSelfOptions: {
auto: "Automático",
start: "Inicio",
center: "Centro",
end: "Fin",
stretch: "Estirar",
baseline: "Línea base",
},
displayOptions: {
block: "Bloque",
flex: "Flexible",
grid: "Cuadrícula",
inline: "En línea",
inlineBlock: "Bloque en línea",
none: "Ninguno",
},
positionOptions: {
static: "Estática",
relative: "Relativa",
absolute: "Absoluta",
fixed: "Fija",
sticky: "Pegajosa",
},
borderStyleOptions: {
none: "Ninguno",
solid: "Sólido",
dashed: "Discontinuo",
dotted: "Punteado",
double: "Doble",
},
},
designEditor: {
patchProof: {
title: "Prueba del parche",
file: "Archivo",
source: "Origen",
capability: "Capacidad",
pending: "Vista previa aplicada; escritura de origen pendiente",
verified: "Escritura verificada; rollback disponible",
rollback: "Revertir",
keep: "Conservar",
selectorMissing:
"El elemento seleccionado ya no existe en esta pantalla.",
status: {
runtime: "Estilo aplicado en runtime",
queued: "Escribiendo parche de origen",
applied: "Parche aplicado",
failed: "Parche fallido",
rolledBack: "Revertido",
},
},
capabilities: {
"deterministic-style-edit": "Edición segura de estilo",
"deterministic-class-edit": "Edición segura de class",
"agent-structural-edit": "Agente necesario para mover estructura",
},
toasts: {
screenDuplicated: "Pantalla duplicada",
screenDuplicateError: "No se pudo duplicar la pantalla",
},
},
multiScreenCanvas: {
duplicate: "Duplicar",
fork: "Bifurcar",
fullView: "Vista completa",
preview: "Vista previa",
openAndDuplicate:
"Selecciona {{display}}. Usa Interactuar para desplazamiento enfocado.",
openAndPreview:
"Selecciona {{display}}. Usa Interactuar para desplazamiento enfocado.",
doubleClickToEdit: "Usa Interactuar para desplazamiento enfocado",
sources: {
localhost: {
label: "Local",
title: "Renderizado desde servidor local",
},
fusion: { label: "Fusion remoto", title: "Renderizado desde Fusion" },
inline: {
label: "Integrado",
title: "Renderizado desde código integrado",
},
},
previews: {
live: {
label: "Vivo",
shortLabel: "Marco vivo",
title: "Vista previa viva",
},
snapshot: {
label: "Captura",
shortLabel: "Captura",
title: "Captura cacheada",
},
preview: {
label: "Vista previa",
shortLabel: "Previa",
title: "Previa integrada",
},
},
},
questionFlow: {
defaultTitle: "Define primero el diseño",
defaultDescription:
"Responde las decisiones importantes. Omite lo que deba decidir el agente.",
multiSelectHelp:
"Las preguntas de selección múltiple admiten varios chips. Usa Otro cuando importe el matiz exacto.",
ready: "Listo para continuar.",
answerRequired: "Responde las tarjetas obligatorias para continuar.",
chooseAny: "Elige las que apliquen",
chooseOne: "Elige una",
textPlaceholder: "Escribe tu respuesta...",
selectUseful: "Selecciona todas las útiles.",
otherDescription: "Dile al agente exactamente qué quieres decir.",
customPlaceholder: "Escribe una respuesta personalizada...",
dragFiles: "Arrastra archivos aquí o",
exploreLabel: "Explorar opciones",
exploreDescription: "Muéstrame direcciones distintas antes de decidir.",
decideLabel: "Decide por mí",
decideDescription: "Usa criterio y sigue avanzando.",
},
visualEditor: {
annotationQueue: "Cola de anotaciones",
batchApply: "Aplicar lote",
pinStatus: {
deterministic: {
detail: "Anclado a una capa o selector y probablemente accionable.",
},
"needs-agent": {
label: "Requiere agente",
detail: "Necesita interpretación o solo tiene contexto de posición.",
},
conflict: {
detail: "Puede solaparse o contradecir otro comentario en cola.",
},
unsupported: {
detail: "Probablemente fuera de esta superficie de edición.",
},
},
},
},
"fr-FR": {
editPanel: {
sections: {
autoLayout: "Mise en page auto",
positionLayout: "Position",
stroke: "Contour",
effects: "Effets",
codeConfidence: "Code",
},
labels: {
flexGrow: "Grandir",
flexShrink: "Réduire",
flexBasis: "Base",
order: "Ordre",
alignSelf: "Alignement propre",
gridColumn: "Colonne",
gridRow: "Rangée",
position: "Position",
display: "Affichage",
image: "Image",
style: "Style",
shadow: "Ombre",
filter: "Filtre",
},
selection: { pageContext: "Valeurs par défaut" },
layoutContext: {
container: "Conteneur",
child: "Enfant",
gridChild: "Enfant de grille",
parent: "Parent",
flexContainer: "Flexible",
notContainer: "Flux",
flexChild: "Enfant flexible",
flowChild: "Enfant en flux",
flowDescription:
"Ce calque est dans le flux normal. Utilisez la position pour des décalages explicites ou demandez une modification structurelle.",
},
codeStatus: {
safeStyle: "Édition de style sûre",
safeStyleDescription:
"Ces contrôles appliquent le style instantanément puis persistent le HTML.",
classTarget: "Cible class/id stable",
selectorFallback: "Sélecteur de secours",
agentStructural: "Agent nécessaire pour les déplacements structurels",
agentStructuralDescription:
"Déplacements, wrappers et réécritures du parent doivent préserver l’intention.",
},
alignSelfOptions: {
auto: "Automatique",
start: "Début",
center: "Centre",
end: "Fin",
stretch: "Étirer",
baseline: "Ligne de base",
},
displayOptions: {
block: "Bloc",
flex: "Flexible",
grid: "Grille",
inline: "En ligne",
inlineBlock: "Bloc en ligne",
none: "Aucun",
},
positionOptions: {
static: "Statique",
relative: "Relative",
absolute: "Absolue",
fixed: "Fixe",
sticky: "Collante",
},
borderStyleOptions: {
none: "Aucun",
solid: "Solide",
dashed: "Tirets",
dotted: "Pointillé",
double: "Double",
},
},
designEditor: {
patchProof: {
title: "Preuve de patch",
file: "Fichier",
source: "Source",
capability: "Capacité",
pending: "Aperçu runtime appliqué ; écriture source en attente",
verified: "Écriture source vérifiée ; retour arrière disponible",
rollback: "Revenir",
keep: "Garder",
selectorMissing: "L’élément sélectionné n’existe plus dans cet écran.",
status: {
runtime: "Style runtime appliqué",
queued: "Écriture du patch source",
applied: "Patch appliqué",
failed: "Patch échoué",
rolledBack: "Revenu en arrière",
},
},
capabilities: {
"deterministic-style-edit": "Édition de style sûre",
"deterministic-class-edit": "Édition de class sûre",
"agent-structural-edit": "Agent requis pour déplacer la structure",
},
toasts: {
screenDuplicated: "Écran dupliqué",
screenDuplicateError: "Impossible de dupliquer l’écran",
},
},
multiScreenCanvas: {
duplicate: "Dupliquer",
fork: "Créer une branche",
fullView: "Vue complète",
preview: "Aperçu",
openAndDuplicate:
"Sélectionner {{display}}. Utilisez Interagir pour le défilement ciblé.",
openAndPreview:
"Sélectionner {{display}}. Utilisez Interagir pour le défilement ciblé.",
doubleClickToEdit: "Utilisez Interagir pour le défilement ciblé",
sources: {
localhost: { label: "Local", title: "Rendu depuis le serveur local" },
fusion: { label: "Fusion distant", title: "Rendu depuis Fusion" },
inline: { label: "Intégré", title: "Rendu depuis le code intégré" },
},
previews: {
live: {
label: "Direct",
shortLabel: "Cadre direct",
title: "Aperçu direct",
},
snapshot: {
label: "Instantané",
shortLabel: "Instantané",
title: "Instantané cache",
},
preview: {
label: "Aperçu",
shortLabel: "Aperçu",
title: "Aperçu intégré",
},
},
},
questionFlow: {
defaultTitle: "Façonner le design d’abord",
defaultDescription:
"Répondez aux choix importants. Ignorez ce que l’agent peut décider.",
multiSelectHelp:
"Les questions à choix multiples acceptent plusieurs puces. Utilisez Autre pour une direction précise.",
ready: "Prêt à continuer.",
answerRequired: "Répondez aux cartes obligatoires pour continuer.",
chooseAny: "Choisissez tout ce qui s’applique",
chooseOne: "Choisissez une option",
textPlaceholder: "Saisissez votre réponse...",
selectUseful: "Sélectionnez tout ce qui est utile.",
otherDescription: "Dites exactement à l’agent ce que vous voulez dire.",
customPlaceholder: "Saisissez une réponse personnalisée...",
dragFiles: "Glissez les fichiers ici ou",
exploreLabel: "Explorer quelques options",
exploreDescription:
"Montrez-moi des directions distinctes avant de décider.",
decideLabel: "Décidez pour moi",
decideDescription: "Faites preuve de jugement et continuez.",
},
visualEditor: {
annotationQueue: "File d’annotations",
batchApply: "Appliquer le lot",
pinStatus: {
deterministic: {
detail: "Ancré à un calque ou sélecteur et probablement actionnable.",
},
"needs-agent": {
label: "Agent requis",
detail: "Nécessite une interprétation ou seulement une position.",
},
conflict: {
detail:
"Peut chevaucher ou contredire un autre commentaire en attente.",
},
unsupported: {
detail: "Probablement hors de cette surface d’édition.",
},
},
},
},
"de-DE": {
editPanel: {
sections: {
autoLayout: "Auto-Layout",
positionLayout: "Position",
stroke: "Kontur",
effects: "Effekte",
codeConfidence: "Code",
},
labels: {
flexGrow: "Wachsen",
flexShrink: "Schrumpfen",
flexBasis: "Basis",
order: "Reihenfolge",
alignSelf: "Selbstausrichtung",
gridColumn: "Spalte",
gridRow: "Zeile",
position: "Position",
display: "Anzeige",
image: "Bild",
style: "Stil",
shadow: "Schatten",
filter: "Filter",
},
selection: { pageContext: "Seitenvorgaben" },
layoutContext: {
container: "Container",
child: "Kind",
gridChild: "Grid-Kind",
parent: "Eltern",
flexContainer: "Flexibel",
notContainer: "Fluss",
flexChild: "Flex-Kind",
flowChild: "Fluss-Kind",
flowDescription:
"Diese Ebene liegt im normalen Dokumentfluss. Nutze Position für explizite Offsets oder den Agenten für Strukturänderungen.",
},
codeStatus: {
safeStyle: "Sichere Stilbearbeitung",
safeStyleDescription:
"Diese Kontrollen wenden Styles sofort an und schreiben danach den HTML-Quelltext.",
classTarget: "Stabiles class/id-Ziel",
selectorFallback: "Selektor-Fallback",
agentStructural: "Agent für strukturelle Bewegungen nötig",
agentStructuralDescription:
"Verschieben, Wrapper und Parent-Layouts müssen die Absicht bewahren.",
},
alignSelfOptions: {
auto: "Automatisch",
start: "Start",
center: "Mitte",
end: "Ende",
stretch: "Strecken",
baseline: "Grundlinie",
},
displayOptions: {
block: "Block",
flex: "Flexibel",
grid: "Raster",
inline: "Inline",
inlineBlock: "Inline-Block",
none: "Keine",
},
positionOptions: {
static: "Statisch",
relative: "Relativ",
absolute: "Absolut",
fixed: "Fixiert",
sticky: "Haftend",
},
borderStyleOptions: {
none: "Keine",
solid: "Durchgezogen",
dashed: "Gestrichelt",
dotted: "Gepunktet",
double: "Doppelt",
},
},
designEditor: {
patchProof: {
title: "Patch-Nachweis",
file: "Datei",
source: "Quelle",
capability: "Fähigkeit",
pending: "Runtime-Vorschau angewendet; Quellschreibung wartet",
verified: "Quellschreibung bestätigt; Rollback verfügbar",
rollback: "Zurückrollen",
keep: "Behalten",
selectorMissing:
"Das ausgewählte Element existiert in diesem Screen nicht mehr.",
status: {
runtime: "Runtime-Stil angewendet",
queued: "Quellpatch wird geschrieben",
applied: "Patch angewendet",
failed: "Patch fehlgeschlagen",
rolledBack: "Zurückgerollt",
},
},
capabilities: {
"deterministic-style-edit": "Sichere Stilbearbeitung",
"deterministic-class-edit": "Sichere class-Bearbeitung",
"agent-structural-edit": "Agent für Strukturbewegung nötig",
},
toasts: {
screenDuplicated: "Screen dupliziert",
screenDuplicateError: "Screen konnte nicht dupliziert werden",
},
},
multiScreenCanvas: {
duplicate: "Duplizieren",
fork: "Abzweigen",
fullView: "Vollansicht",
preview: "Vorschau",
openAndDuplicate:
"{{display}} auswählen. Verwenden Sie Interagieren zum fokussierten Scrollen.",
openAndPreview:
"{{display}} auswählen. Verwenden Sie Interagieren zum fokussierten Scrollen.",
doubleClickToEdit: "Verwenden Sie Interagieren zum fokussierten Scrollen",
sources: {
localhost: {
label: "Lokal",
title: "Vom lokalen Entwicklungsserver gerendert",
},
fusion: { label: "Fusion remote", title: "Von Fusion gerendert" },
inline: {
label: "Eingebettet",
title: "Aus eingebettetem Code gerendert",
},
},
previews: {
live: {
label: "Live",
shortLabel: "Live-Rahmen",
title: "Live-Vorschau",
},
snapshot: {
label: "Snapshot",
shortLabel: "Snapshot",
title: "Statischer Cache-Snapshot",
},
preview: {
label: "Vorschau",
shortLabel: "Vorschau",
title: "Eingebettete Vorschau",
},
},
},
questionFlow: {
defaultTitle: "Design zuerst formen",
defaultDescription:
"Beantworte die wichtigen Entscheidungen. Überspringe, was der Agent entscheiden soll.",
multiSelectHelp:
"Mehrfachauswahl erlaubt mehrere Chips. Nutze Andere, wenn die genaue Richtung zählt.",
ready: "Bereit zum Fortfahren.",
answerRequired: "Beantworte Pflichtkarten, um fortzufahren.",
chooseAny: "Wähle alle passenden Optionen",
chooseOne: "Wähle eine Option",
textPlaceholder: "Antwort eingeben...",
selectUseful: "Wähle alles Nützliche aus.",
otherDescription: "Sag dem Agenten genau, was du meinst.",
customPlaceholder: "Eigene Antwort eingeben...",
dragFiles: "Dateien hierher ziehen oder",
exploreLabel: "Einige Optionen erkunden",
exploreDescription: "Zeige verschiedene Richtungen vor der Entscheidung.",
decideLabel: "Entscheide für mich",
decideDescription: "Urteilsvermögen nutzen und weitermachen.",
},
visualEditor: {
annotationQueue: "Anmerkungswarteschlange",
batchApply: "Stapel anwenden",
pinStatus: {
deterministic: {
detail:
"An Ebene oder Selektor verankert und wahrscheinlich direkt umsetzbar.",
},
"needs-agent": {
label: "Agent nötig",
detail: "Benötigt Interpretation oder nur Positionskontext.",
},
conflict: {
detail:
"Kann sich mit einem anderen Kommentar überschneiden oder widersprechen.",
},
unsupported: {
detail: "Wahrscheinlich außerhalb dieser Bearbeitungsfläche.",
},
},
},
},
"ja-JP": {
editPanel: {
sections: {
autoLayout: "オートレイアウト",
positionLayout: "位置",
stroke: "線",
effects: "効果",
codeConfidence: "コード",
},
labels: {
flexGrow: "伸長",
flexShrink: "縮小",
flexBasis: "基準",
order: "順序",
alignSelf: "自己揃え",
gridColumn: "列",
gridRow: "行",
position: "位置",
display: "表示",
image: "画像",
style: "スタイル",
shadow: "影",
filter: "フィルター",
},
selection: { pageContext: "ページ既定値" },
layoutContext: {
container: "コンテナ",
child: "子要素",
gridChild: "グリッド子要素",
parent: "親",
flexContainer: "フレックス",
notContainer: "フロー",
flexChild: "フレックス子要素",
flowChild: "フロー子要素",
flowDescription:
"このレイヤーは通常のドキュメントフロー内です。明示的な位置調整を使うか、構造変更はエージェントに依頼してください。",
},
codeStatus: {
safeStyle: "安全なスタイル編集",
safeStyleDescription:
"この操作は即時にスタイルを適用し、その後 HTML ソースへ保存します。",
classTarget: "安定した class/id ターゲット",
selectorFallback: "セレクターフォールバック",
agentStructural: "構造移動にはエージェントが必要",
agentStructuralDescription:
"移動、ラッパー、親レイアウトの変更は意図を保つ必要があります。",
},
alignSelfOptions: {
auto: "自動",
start: "開始",
center: "中央",
end: "終了",
stretch: "伸ばす",
baseline: "ベースライン",
},
displayOptions: {
block: "ブロック",
flex: "フレックス",
grid: "グリッド",
inline: "インライン",
inlineBlock: "インラインブロック",
none: "なし",
},
positionOptions: {
static: "静的",
relative: "相対",
absolute: "絶対",
fixed: "固定",
sticky: "固定追従",
},
borderStyleOptions: {
none: "なし",
solid: "実線",
dashed: "破線",
dotted: "点線",
double: "二重線",
},
},
designEditor: {
patchProof: {
title: "パッチ証明",
file: "ファイル",
source: "ソース",
capability: "能力",
pending: "ランタイムプレビュー適用済み、ソース書き込み待ち",
verified: "ソース書き込み確認済み、ロールバック可能",
rollback: "戻す",
keep: "保持",
selectorMissing: "選択した要素はこの画面に存在しません。",
status: {
runtime: "ランタイムスタイル適用済み",
queued: "ソースパッチを書き込み中",
applied: "パッチ適用済み",
failed: "パッチ失敗",
rolledBack: "ロールバック済み",
},
},
capabilities: {
"deterministic-style-edit": "安全なスタイル編集",
"deterministic-class-edit": "安全な class 編集",
"agent-structural-edit": "構造移動にはエージェントが必要",
},
toasts: {
screenDuplicated: "画面を複製しました",
screenDuplicateError: "画面を複製できません",
},
},
multiScreenCanvas: {
duplicate: "複製",
fork: "分岐",
fullView: "全体表示",
preview: "プレビュー",
openAndDuplicate:
"{{display}} を選択します。集中してスクロールするには操作モードを使用。",
openAndPreview:
"{{display}} を選択します。集中してスクロールするには操作モードを使用。",
doubleClickToEdit: "集中してスクロールするには操作モードを使用",
sources: {
localhost: {
label: "ローカル",
title: "ローカル開発サーバーからレンダー",
},
fusion: { label: "Fusion リモート", title: "Fusion からレンダー" },
inline: { label: "埋め込み", title: "埋め込みコードからレンダー" },
},
previews: {
live: {
label: "ライブ",
shortLabel: "ライブフレーム",
title: "ライブプレビュー",
},
snapshot: {
label: "スナップショット",
shortLabel: "スナップショット",
title: "静的キャッシュスナップショット",
},
preview: {
label: "プレビュー",
shortLabel: "プレビュー",
title: "埋め込みプレビュー",
},
},
},
questionFlow: {
defaultTitle: "まずデザインを整える",
defaultDescription:
"重要な選択に答えます。エージェントに任せる部分はスキップできます。",
multiSelectHelp:
"複数選択は複数のチップを選べます。正確な方向が必要ならその他を使ってください。",
ready: "続行できます。",
answerRequired: "必須カードに回答すると続行できます。",
chooseAny: "当てはまるものを選択",
chooseOne: "1つ選択",
textPlaceholder: "回答を入力...",
selectUseful: "役立つものをすべて選択してください。",
otherDescription: "意図をエージェントに正確に伝えてください。",
customPlaceholder: "カスタム回答を入力...",
dragFiles: "ここにファイルをドラッグ、または",
exploreLabel: "いくつかの案を探索",
exploreDescription: "決める前に異なる方向を見せてください。",
decideLabel: "任せて決定",
decideDescription: "判断して進めてください。",
},
visualEditor: {
annotationQueue: "注釈キュー",
batchApply: "まとめて適用",
pinStatus: {
deterministic: {
detail: "レイヤーまたはセレクターに固定され、直接対応できそうです。",
},
"needs-agent": {
label: "エージェント必要",
detail: "解釈が必要、またはキャンバス位置のみの文脈です。",
},
conflict: {
detail: "別のキュー内コメントと重複または矛盾する可能性があります。",
},
unsupported: {
detail: "この編集面の範囲外の可能性があります。",
},
},
},
},
"ko-KR": {
editPanel: {
sections: {
autoLayout: "자동 레이아웃",
positionLayout: "위치",
stroke: "획",
effects: "효과",
codeConfidence: "코드",
},
labels: {
flexGrow: "확장",
flexShrink: "축소",
flexBasis: "기준",
order: "순서",
alignSelf: "자체 정렬",
gridColumn: "열",
gridRow: "행",
position: "위치",
display: "표시",
image: "이미지",
style: "스타일",
shadow: "그림자",
filter: "필터",
},
selection: { pageContext: "페이지 기본값" },
layoutContext: {
container: "컨테이너",
child: "자식",
gridChild: "그리드 자식",
parent: "부모",
flexContainer: "플렉스",
notContainer: "흐름",
flexChild: "플렉스 자식",
flowChild: "흐름 자식",
flowDescription:
"이 레이어는 일반 문서 흐름 안에 있습니다. 명시적 오프셋은 위치 제어를 쓰고 구조 변경은 에이전트에게 요청하세요.",
},
codeStatus: {
safeStyle: "안전한 스타일 편집",
safeStyleDescription:
"이 제어는 런타임 스타일을 즉시 적용한 뒤 HTML 소스에 저장합니다.",
classTarget: "안정적인 class/id 대상",
selectorFallback: "선택자 대체",
agentStructural: "구조 이동에는 에이전트 필요",
agentStructuralDescription:
"이동, 래퍼, 부모 레이아웃 재작성은 의도를 보존해야 합니다.",
},
alignSelfOptions: {
auto: "자동",
start: "시작",
center: "가운데",
end: "끝",
stretch: "늘이기",
baseline: "기준선",
},
displayOptions: {
block: "블록",
flex: "플렉스",
grid: "그리드",
inline: "인라인",
inlineBlock: "인라인 블록",
none: "없음",
},
positionOptions: {
static: "정적",
relative: "상대",
absolute: "절대",
fixed: "고정",
sticky: "스티키",
},
borderStyleOptions: {
none: "없음",
solid: "실선",
dashed: "파선",
dotted: "점선",
double: "이중선",
},
},
designEditor: {
patchProof: {
title: "패치 증명",
file: "파일",
source: "소스",
capability: "기능",
pending: "런타임 미리보기가 적용됨; 소스 쓰기 대기 중",
verified: "소스 쓰기 확인됨; 롤백 가능",
rollback: "롤백",
keep: "유지",
selectorMissing: "선택한 요소가 이 화면에 더 이상 없습니다.",
status: {
runtime: "런타임 스타일 적용됨",
queued: "소스 패치 작성 중",
applied: "패치 적용됨",
failed: "패치 실패",
rolledBack: "롤백됨",
},
},
capabilities: {
"deterministic-style-edit": "안전한 스타일 편집",
"deterministic-class-edit": "안전한 class 편집",
"agent-structural-edit": "구조 이동에는 에이전트 필요",
},
toasts: {
screenDuplicated: "화면이 복제됨",
screenDuplicateError: "화면을 복제할 수 없음",
},
},
multiScreenCanvas: {
duplicate: "복제",
fork: "분기",
fullView: "전체 보기",
preview: "미리보기",
openAndDuplicate:
"{{display}} 선택. 집중 스크롤에는 상호작용 모드를 사용하세요.",
openAndPreview:
"{{display}} 선택. 집중 스크롤에는 상호작용 모드를 사용하세요.",
doubleClickToEdit: "집중 스크롤에는 상호작용 모드를 사용하세요",
sources: {
localhost: { label: "로컬", title: "로컬 개발 서버에서 렌더링됨" },
fusion: { label: "Fusion 원격", title: "Fusion에서 렌더링됨" },
inline: { label: "인라인", title: "인라인 코드에서 렌더링됨" },
},
previews: {
live: {
label: "실시간",
shortLabel: "실시간 프레임",
title: "실시간 미리보기",
},
snapshot: {
label: "스냅샷",
shortLabel: "스냅샷",
title: "정적 캐시 스냅샷",
},
preview: {
label: "미리보기",
shortLabel: "미리보기",
title: "인라인 미리보기",
},
},
},
questionFlow: {
defaultTitle: "먼저 디자인 방향 잡기",
defaultDescription:
"영향이 큰 선택에 답하세요. 에이전트가 결정해도 되는 항목은 건너뛰세요.",
multiSelectHelp:
"다중 선택 질문은 여러 칩을 선택할 수 있습니다. 정확한 방향이 중요하면 기타를 사용하세요.",
ready: "계속할 준비가 되었습니다.",
answerRequired: "계속하려면 필수 카드를 답하세요.",
chooseAny: "해당되는 항목 선택",
chooseOne: "하나 선택",
textPlaceholder: "답변 입력...",
selectUseful: "유용한 항목을 모두 선택하세요.",
otherDescription: "에이전트에게 의미를 정확히 알려주세요.",
customPlaceholder: "사용자 지정 답변 입력...",
dragFiles: "파일을 여기에 끌어오거나",
exploreLabel: "몇 가지 옵션 탐색",
exploreDescription: "결정 전에 서로 다른 방향을 보여주세요.",
decideLabel: "대신 결정해줘",
decideDescription: "판단해서 계속 진행하세요.",
},
visualEditor: {
annotationQueue: "주석 대기열",
batchApply: "일괄 적용",
pinStatus: {
deterministic: {
detail: "레이어나 선택자에 고정되어 직접 처리할 가능성이 큽니다.",
},
"needs-agent": {
label: "에이전트 필요",
detail: "해석이 필요하거나 캔버스 위치 컨텍스트만 있습니다.",
},
conflict: {
detail: "대기열의 다른 댓글과 겹치거나 충돌할 수 있습니다.",
},
unsupported: {
detail: "이 캔버스 편집 범위 밖일 가능성이 큽니다.",
},
},
},
},
"pt-BR": {
editPanel: {
sections: {
autoLayout: "Layout automático",
positionLayout: "Posição",
stroke: "Traço",
effects: "Efeitos",
codeConfidence: "Código",
},
labels: {
flexGrow: "Crescer",
flexShrink: "Encolher",
flexBasis: "Base",
order: "Ordem",
alignSelf: "Autoalinhar",
gridColumn: "Coluna",
gridRow: "Linha",
position: "Posição",
display: "Exibição",
image: "Imagem",
style: "Estilo",
shadow: "Sombra",
filter: "Filtro",
},
selection: { pageContext: "Padrões da página" },
layoutContext: {
container: "Contêiner",
child: "Filho",
gridChild: "Filho da grade",
parent: "Pai",
flexContainer: "Flexível",
notContainer: "Fluxo",
flexChild: "Filho flexível",
flowChild: "Filho em fluxo",
flowDescription:
"Esta camada está no fluxo normal do documento. Use posição para deslocamentos explícitos ou peça mudanças estruturais ao agente.",
},
codeStatus: {
safeStyle: "Edição segura de estilo",
safeStyleDescription:
"Estes controles aplicam estilos na hora e depois persistem o HTML.",
classTarget: "Alvo class/id estável",
selectorFallback: "Seletor reserva",
agentStructural: "Agente necessário para movimentos estruturais",
agentStructuralDescription:
"Movimentos, wrappers e reescritas do layout pai precisam preservar intenção.",
},
alignSelfOptions: {
auto: "Automático",
start: "Início",
center: "Centro",
end: "Fim",
stretch: "Esticar",
baseline: "Linha base",
},
displayOptions: {
block: "Bloco",
flex: "Flexível",
grid: "Grade",
inline: "Em linha",
inlineBlock: "Bloco em linha",
none: "Nenhum",
},
positionOptions: {
static: "Estática",
relative: "Relativa",
absolute: "Absoluta",
fixed: "Fixa",
sticky: "Aderente",
},
borderStyleOptions: {
none: "Nenhum",
solid: "Sólido",
dashed: "Tracejado",
dotted: "Pontilhado",
double: "Duplo",
},
},
designEditor: {
patchProof: {
title: "Prova do patch",
file: "Arquivo",
source: "Fonte",
capability: "Capacidade",
pending: "Prévia em runtime aplicada; escrita de fonte pendente",
verified: "Escrita de fonte verificada; rollback disponível",
rollback: "Reverter",
keep: "Manter",
selectorMissing: "O elemento selecionado não existe mais nesta tela.",
status: {
runtime: "Estilo em runtime aplicado",
queued: "Escrevendo patch de fonte",
applied: "Patch aplicado",
failed: "Patch falhou",
rolledBack: "Revertido",
},
},
capabilities: {
"deterministic-style-edit": "Edição segura de estilo",
"deterministic-class-edit": "Edição segura de class",
"agent-structural-edit": "Agente necessário para mover estrutura",
},
toasts: {
screenDuplicated: "Tela duplicada",
screenDuplicateError: "Não foi possível duplicar a tela",
},
},
multiScreenCanvas: {
duplicate: "Duplicar",
fork: "Ramificar",
fullView: "Vista completa",
preview: "Prévia",
openAndDuplicate:
"Selecione {{display}}. Use Interagir para rolagem focada.",
openAndPreview:
"Selecione {{display}}. Use Interagir para rolagem focada.",
doubleClickToEdit: "Use Interagir para rolagem focada",
sources: {
localhost: { label: "Local", title: "Renderizado pelo servidor local" },
fusion: { label: "Fusion remoto", title: "Renderizado pelo Fusion" },
inline: { label: "Embutido", title: "Renderizado por código embutido" },
},
previews: {
live: {
label: "Ao vivo",
shortLabel: "Frame ao vivo",
title: "Prévia ao vivo",
},
snapshot: {
label: "Instantâneo",
shortLabel: "Instantâneo",
title: "Instantâneo em cache",
},
preview: {
label: "Prévia",
shortLabel: "Prévia",
title: "Prévia embutida",
},
},
},
questionFlow: {
defaultTitle: "Defina o design primeiro",
defaultDescription:
"Responda às escolhas importantes. Pule o que o agente deve decidir.",
multiSelectHelp:
"Perguntas de múltipla seleção aceitam vários chips. Use Outro quando a direção exata importar.",
ready: "Pronto para continuar.",
answerRequired: "Responda aos cartões obrigatórios para continuar.",
chooseAny: "Escolha tudo que se aplica",
chooseOne: "Escolha uma opção",
textPlaceholder: "Digite sua resposta...",
selectUseful: "Selecione tudo que for útil.",
otherDescription: "Diga ao agente exatamente o que você quer dizer.",
customPlaceholder: "Digite uma resposta personalizada...",
dragFiles: "Arraste arquivos aqui ou",
exploreLabel: "Explorar algumas opções",
exploreDescription: "Mostre direções distintas antes de decidir.",
decideLabel: "Decida por mim",
decideDescription: "Use julgamento e siga em frente.",
},
visualEditor: {
annotationQueue: "Fila de anotações",
batchApply: "Aplicar em lote",
pinStatus: {
deterministic: {
detail: "Ancorado a uma camada ou seletor e provavelmente acionável.",
},
"needs-agent": {
label: "Precisa do agente",
detail: "Precisa de interpretação ou só tem contexto de posição.",
},
conflict: {
detail: "Pode sobrepor ou contradizer outro comentário na fila.",
},
unsupported: {
detail: "Provavelmente fora desta superfície de edição.",
},
},
},
},
"hi-IN": {
editPanel: {
sections: {
autoLayout: "ऑटो लेआउट",
positionLayout: "स्थिति",
stroke: "स्ट्रोक",
effects: "प्रभाव",
codeConfidence: "कोड",
},
labels: {
flexGrow: "बढ़ना",
flexShrink: "सिकुड़ना",
flexBasis: "आधार",
order: "क्रम",
alignSelf: "स्वयं संरेखित",
gridColumn: "कॉलम",
gridRow: "पंक्ति",
position: "स्थिति",
display: "दिखावट",
image: "छवि",
style: "शैली",
shadow: "छाया",
filter: "फ़िल्टर",
},
selection: { pageContext: "पेज डिफ़ॉल्ट" },
layoutContext: {
container: "कंटेनर",
child: "चाइल्ड",
gridChild: "ग्रिड चाइल्ड",
parent: "पैरेंट",
flexContainer: "लचीला",
notContainer: "प्रवाह",
flexChild: "लचीला चाइल्ड",
flowChild: "प्रवाह चाइल्ड",
flowDescription:
"यह लेयर सामान्य दस्तावेज़ प्रवाह में है। स्पष्ट ऑफ़सेट के लिए स्थिति नियंत्रण इस्तेमाल करें या संरचनात्मक बदलाव एजेंट से कराएँ।",
},
codeStatus: {
safeStyle: "सुरक्षित स्टाइल संपादन",
safeStyleDescription:
"ये नियंत्रण तुरंत स्टाइल लागू करते हैं और फिर HTML स्रोत में सहेजते हैं।",
classTarget: "स्थिर class/id लक्ष्य",
selectorFallback: "सेलेक्टर विकल्प",
agentStructural: "संरचनात्मक मूव के लिए एजेंट चाहिए",
agentStructuralDescription:
"मूव, wrapper और पैरेंट layout बदलाव में इरादा सुरक्षित रखना होता है।",
},
alignSelfOptions: {
auto: "स्वचालित",
start: "आरंभ",
center: "केंद्र",
end: "अंत",
stretch: "फैलाएँ",
baseline: "बेसलाइन",
},
displayOptions: {
block: "ब्लॉक",
flex: "लचीला",
grid: "ग्रिड",
inline: "इनलाइन",
inlineBlock: "इनलाइन ब्लॉक",
none: "कोई नहीं",
},
positionOptions: {
static: "स्थिर",
relative: "सापेक्ष",
absolute: "पूर्ण",
fixed: "फिक्स्ड",
sticky: "चिपकने वाला",
},
borderStyleOptions: {
none: "कोई नहीं",
solid: "ठोस",
dashed: "डैश",
dotted: "बिंदु",
double: "डबल",
},
},
designEditor: {
patchProof: {
title: "पैच प्रमाण",
file: "फ़ाइल",
source: "स्रोत",
capability: "क्षमता",
pending: "रनटाइम पूर्वावलोकन लागू; स्रोत लिखना बाकी",
verified: "स्रोत लेखन सत्यापित; rollback उपलब्ध",
rollback: "वापस लें",
keep: "रखें",
selectorMissing: "चुना गया तत्व अब इस स्क्रीन में नहीं है।",
status: {
runtime: "रनटाइम स्टाइल लागू",
queued: "स्रोत पैच लिखा जा रहा है",
applied: "पैच लागू",
failed: "पैच विफल",
rolledBack: "वापस लिया गया",
},
},
capabilities: {
"deterministic-style-edit": "सुरक्षित स्टाइल संपादन",
"deterministic-class-edit": "सुरक्षित class संपादन",
"agent-structural-edit": "संरचना मूव के लिए एजेंट चाहिए",
},
toasts: {
screenDuplicated: "स्क्रीन डुप्लिकेट हुई",
screenDuplicateError: "स्क्रीन डुप्लिकेट नहीं हो सकी",
},
},
multiScreenCanvas: {
duplicate: "डुप्लिकेट",
fork: "फोर्क",
fullView: "पूर्ण दृश्य",
preview: "पूर्वावलोकन",
openAndDuplicate:
"{{display}} चुनें। केंद्रित स्क्रॉलिंग के लिए इंटरैक्ट मोड का उपयोग करें।",
openAndPreview:
"{{display}} चुनें। केंद्रित स्क्रॉलिंग के लिए इंटरैक्ट मोड का उपयोग करें।",
doubleClickToEdit: "केंद्रित स्क्रॉलिंग के लिए इंटरैक्ट मोड का उपयोग करें",
sources: {
localhost: { label: "स्थानीय", title: "स्थानीय dev server से render" },
fusion: { label: "Fusion remote", title: "Fusion से render" },
inline: { label: "इनलाइन", title: "इनलाइन कोड से render" },
},
previews: {
live: {
label: "लाइव",
shortLabel: "लाइव फ़्रेम",
title: "लाइव पूर्वावलोकन",
},
snapshot: {
label: "स्नैपशॉट",
shortLabel: "स्नैपशॉट",
title: "स्थिर cached स्नैपशॉट",
},
preview: {
label: "पूर्वावलोकन",
shortLabel: "पूर्वावलोकन",
title: "इनलाइन पूर्वावलोकन",
},
},
},
questionFlow: {
defaultTitle: "पहले डिज़ाइन तय करें",
defaultDescription:
"महत्वपूर्ण विकल्पों का उत्तर दें। जिसे एजेंट तय कर सकता है उसे छोड़ें।",
multiSelectHelp:
"मल्टी-सेलेक्ट सवाल कई chips ले सकते हैं। सटीक दिशा ज़रूरी हो तो Other इस्तेमाल करें।",
ready: "आगे बढ़ने के लिए तैयार।",
answerRequired: "आगे बढ़ने के लिए आवश्यक cards का उत्तर दें।",
chooseAny: "जो लागू हो उन्हें चुनें",
chooseOne: "एक चुनें",
textPlaceholder: "अपना उत्तर लिखें...",
selectUseful: "जो उपयोगी हों वे सभी चुनें।",
otherDescription: "एजेंट को ठीक-ठीक बताएँ कि आपका मतलब क्या है।",
customPlaceholder: "कस्टम उत्तर लिखें...",
dragFiles: "फ़ाइलें यहाँ खींचें या",
exploreLabel: "कुछ विकल्प देखें",
exploreDescription: "निर्णय से पहले अलग दिशाएँ दिखाएँ।",
decideLabel: "मेरे लिए तय करें",
decideDescription: "निर्णय लेकर आगे बढ़ें।",
},
visualEditor: {
annotationQueue: "एनोटेशन कतार",
batchApply: "बैच लागू करें",
pinStatus: {
deterministic: {
detail: "लेयर या selector से जुड़ा है और सीधे actionable हो सकता है।",
},
"needs-agent": {
label: "एजेंट चाहिए",
detail: "व्याख्या चाहिए या केवल canvas-position संदर्भ है।",
},
conflict: {
detail: "कतार में किसी दूसरे comment से overlap या विरोध हो सकता है।",
},
unsupported: {
detail: "शायद इस canvas edit surface के बाहर है।",
},
},
},
},
"ar-SA": {
editPanel: {
sections: {
autoLayout: "تخطيط تلقائي",
positionLayout: "الموضع",
stroke: "الحد",
effects: "التأثيرات",
codeConfidence: "الكود",
},
labels: {
flexGrow: "تمدد",
flexShrink: "انكماش",
flexBasis: "الأساس",
order: "الترتيب",
alignSelf: "محاذاة الذات",
gridColumn: "عمود",
gridRow: "صف",
position: "الموضع",
display: "العرض",
image: "صورة",
style: "نمط",
shadow: "ظل",
filter: "مرشح",
},
selection: { pageContext: "إعدادات الصفحة الافتراضية" },
layoutContext: {
container: "حاوية",
child: "عنصر فرعي",
gridChild: "فرعي ضمن شبكة",
parent: "الأصل",
flexContainer: "مرن",
notContainer: "تدفق",
flexChild: "فرعي مرن",
flowChild: "فرعي في التدفق",
flowDescription:
"هذه الطبقة ضمن تدفق المستند العادي. استخدم الموضع للإزاحات الصريحة أو اطلب من الوكيل تعديلاً بنيوياً.",
},
codeStatus: {
safeStyle: "تعديل نمط آمن",
safeStyleDescription:
"تطبق هذه التحكمات النمط فوراً ثم تحفظه في مصدر HTML.",
classTarget: "هدف class/id مستقر",
selectorFallback: "محدد احتياطي",
agentStructural: "يلزم الوكيل للحركات البنيوية",
agentStructuralDescription:
"النقل واللف وإعادة كتابة تخطيط الأصل تحتاج إلى حفظ القصد.",
},
alignSelfOptions: {
auto: "تلقائي",
start: "البداية",
center: "الوسط",
end: "النهاية",
stretch: "تمديد",
baseline: "خط الأساس",
},
displayOptions: {
block: "كتلة",
flex: "مرن",
grid: "شبكة",
inline: "ضمن السطر",
inlineBlock: "كتلة ضمن السطر",
none: "لا شيء",
},
positionOptions: {
static: "ثابتة",
relative: "نسبية",
absolute: "مطلقة",
fixed: "مثبتة",
sticky: "لاصقة",
},
borderStyleOptions: {
none: "لا شيء",
solid: "متصل",
dashed: "متقطع",
dotted: "منقط",
double: "مزدوج",
},
},
designEditor: {
patchProof: {
title: "إثبات التصحيح",
file: "ملف",
source: "المصدر",
capability: "القدرة",
pending: "تم تطبيق معاينة التشغيل؛ كتابة المصدر معلقة",
verified: "تم التحقق من كتابة المصدر؛ التراجع متاح",
rollback: "تراجع",
keep: "احتفاظ",
selectorMissing: "العنصر المحدد لم يعد موجوداً في هذه الشاشة.",
status: {
runtime: "تم تطبيق نمط التشغيل",
queued: "جارٍ كتابة تصحيح المصدر",
applied: "تم تطبيق التصحيح",
failed: "فشل التصحيح",
rolledBack: "تم التراجع",
},
},
capabilities: {
"deterministic-style-edit": "تعديل نمط آمن",
"deterministic-class-edit": "تعديل class آمن",
"agent-structural-edit": "يلزم الوكيل لتحريك البنية",
},
toasts: {
screenDuplicated: "تم تكرار الشاشة",
screenDuplicateError: "تعذر تكرار الشاشة",
},
},
multiScreenCanvas: {
duplicate: "تكرار",
fork: "تفريع",
fullView: "عرض كامل",
preview: "معاينة",
openAndDuplicate: "حدد {{display}}. استخدم وضع التفاعل للتمرير المركّز.",
openAndPreview: "حدد {{display}}. استخدم وضع التفاعل للتمرير المركّز.",
doubleClickToEdit: "استخدم وضع التفاعل للتمرير المركّز",
sources: {
localhost: { label: "محلي", title: "معروض من خادم التطوير المحلي" },
fusion: { label: "Fusion بعيد", title: "معروض من Fusion" },
inline: { label: "مضمن", title: "معروض من كود مضمن" },
},
previews: {
live: { label: "حي", shortLabel: "إطار حي", title: "معاينة حية" },
snapshot: {
label: "لقطة",
shortLabel: "لقطة",
title: "لقطة ثابتة مخزنة",
},
preview: {
label: "معاينة",
shortLabel: "معاينة",
title: "معاينة مضمنة",
},
},
},
questionFlow: {
defaultTitle: "شكّل التصميم أولاً",
defaultDescription:
"أجب عن الخيارات عالية التأثير. تخطَّ ما يجب أن يقرره الوكيل.",
multiSelectHelp:
"أسئلة الاختيار المتعدد تقبل عدة شرائح. استخدم خيار آخر عندما تهم الدقة.",
ready: "جاهز للمتابعة.",
answerRequired: "أجب عن البطاقات المطلوبة للمتابعة.",
chooseAny: "اختر كل ما ينطبق",
chooseOne: "اختر واحداً",
textPlaceholder: "اكتب إجابتك...",
selectUseful: "اختر كل ما هو مفيد.",
otherDescription: "أخبر الوكيل بالضبط بما تقصده.",
customPlaceholder: "اكتب إجابة مخصصة...",
dragFiles: "اسحب الملفات هنا أو",
exploreLabel: "استكشف بعض الخيارات",
exploreDescription: "أرني اتجاهات مختلفة قبل الالتزام.",
decideLabel: "قرر نيابة عني",
decideDescription: "استخدم الحكم واستمر.",
},
visualEditor: {
annotationQueue: "قائمة الملاحظات",
batchApply: "تطبيق دفعة",
pinStatus: {
deterministic: {
detail: "مثبت بطبقة أو محدد ومن المحتمل تنفيذه مباشرة.",
},
"needs-agent": {
label: "يحتاج الوكيل",
detail: "يحتاج إلى تفسير، أو لديه سياق موضع اللوحة فقط.",
},
conflict: {
detail: "قد يتداخل أو يتعارض مع تعليق آخر في القائمة.",
},
unsupported: {
detail: "غالباً خارج سطح تحرير هذه اللوحة.",
},
},
},
},
} satisfies Record, PartialMessages>;
const designCanvasFeatureOverrides = {
"zh-TW": {
designEditor: {
toasts: {
annotationSendError: "無法傳送註解。你的繪圖仍保留在這裡,請再試一次。",
propsCopied: "屬性已複製",
propsPasted: "屬性已貼上",
},
},
layersPanel: {
title: "圖層",
screens: "畫面",
allScreens: "所有畫面",
thumbnail: "縮圖",
addScreen: "新增畫面",
searchPlaceholder: "搜尋圖層...",
empty: "沒有圖層",
noMatches: "沒有符合的圖層",
designLayers: "設計圖層",
codeLayers: "程式碼圖層",
elementLayers: "元素圖層",
collapse: "收合圖層",
expand: "展開圖層",
lock: "鎖定圖層",
unlock: "解除鎖定圖層",
hide: "隱藏圖層",
show: "顯示圖層",
rename: "重新命名圖層",
deleteBoardObject: "刪除畫布物件",
copy: "複製",
pasteHere: "貼在這裡",
duplicate: "重製",
delete: "刪除",
group: "群組",
ungroup: "取消群組",
bringForward: "上移一層",
bringToFront: "移到最上層",
sendBackward: "下移一層",
sendToBack: "移到最下層",
},
},
"zh-CN": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "建议自动布局…",
title: "建议自动布局",
description: "预览根据子层实测几何推断的布局。应用前不会更改任何内容。",
preview: "自动布局预览",
sizing: "尺寸调整",
fixed: "固定",
hug: "适应内容",
cancel: "取消",
apply: "应用自动布局",
selectContainer: "请选择一个含子层的容器以获取建议。",
stale: "容器已更改。请重新预览后再应用。",
warnings: {
overlap: "部分子层重叠,无法安全应用此建议。",
irregular: "间距不规则;当前显示中位数间距。",
transformed: "变换后的子层需要手动检查后再转换。",
},
},
toasts: {
annotationSendError: "无法发送批注。你的绘图仍保留在这里,请重试。",
propsCopied: "属性已复制",
propsPasted: "属性已粘贴",
primitiveInsertFailed: "无法将该图层添加到画面",
layerMoveFailed: "无法移动该图层",
layerMoveRedirected: "已移动到原位置附近——精确的放置目标不可编辑",
duplicateElementFailed: "无法复制该元素",
eyedropperUnsupported: "此浏览器不支持取色器",
},
},
editPanel: {
labels: {
addLayer: "新增图层",
removeLayer: "移除图层",
showLayer: "显示图层",
hideLayer: "隐藏图层",
reorderLayer: "重新排序图层",
linkSides: "链接四边",
unlinkSides: "取消链接四边",
allSides: "全部",
lockAspectRatio: "锁定宽高比",
unlockAspectRatio: "解锁宽高比",
cornerRadius: "圆角半径",
independentCorners: "独立圆角",
topLeft: "左上",
topRight: "右上",
bottomLeft: "左下",
bottomRight: "右下",
blend: "混合",
border: "边框",
outline: "轮廓",
inside: "内侧",
outside: "外侧",
center: "中心",
dropShadow: "投影",
addDropShadow: "新增投影",
innerShadow: "内阴影",
layerBlur: "图层模糊",
blur: "模糊",
spread: "扩散",
},
},
layersPanel: {
title: "图层",
screens: "屏幕",
allScreens: "所有屏幕",
thumbnail: "缩略图",
addScreen: "添加屏幕",
searchPlaceholder: "搜索图层...",
empty: "没有图层",
noMatches: "没有匹配的图层",
designLayers: "设计图层",
codeLayers: "代码图层",
elementLayers: "元素图层",
collapse: "折叠图层",
expand: "展开图层",
lock: "锁定图层",
unlock: "解锁图层",
hide: "隐藏图层",
show: "显示图层",
rename: "重命名图层",
deleteBoardObject: "删除画布对象",
copy: "复制",
pasteHere: "粘贴到此处",
duplicate: "创建副本",
delete: "删除",
group: "编组",
ungroup: "取消编组",
bringForward: "上移一层",
bringToFront: "置于顶层",
sendBackward: "下移一层",
sendToBack: "置于底层",
},
},
"es-ES": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "Sugerir diseño automático…",
title: "Sugerir diseño automático",
description:
"Revisa el diseño inferido de la geometría medida. Nada cambia hasta aplicarlo.",
preview: "Vista previa del diseño automático",
sizing: "Tamaño",
fixed: "Fijo",
hug: "Ajustar",
cancel: "Cancelar",
apply: "Aplicar diseño automático",
selectContainer: "Selecciona un contenedor con elementos secundarios.",
stale: "El contenedor cambió. Genera una vista previa nueva.",
warnings: {
overlap:
"Algunos elementos se superponen; no es seguro aplicar la propuesta.",
irregular: "El espaciado es irregular; se muestra la mediana.",
transformed: "Los elementos transformados requieren revisión manual.",
},
},
toasts: {
annotationSendError:
"No se pudieron enviar las anotaciones. Tu dibujo sigue aquí; inténtalo de nuevo.",
propsCopied: "Propiedades copiadas",
propsPasted: "Propiedades pegadas",
primitiveInsertFailed: "No se pudo añadir esa capa a la pantalla",
layerMoveFailed: "No se pudo mover esa capa",
layerMoveRedirected:
"Se movió cerca de su lugar original — el destino exacto no es editable",
duplicateElementFailed: "No se pudo duplicar ese elemento",
eyedropperUnsupported:
"El cuentagotas no es compatible con este navegador",
},
},
editPanel: {
labels: {
addLayer: "Añadir capa",
removeLayer: "Eliminar capa",
showLayer: "Mostrar capa",
hideLayer: "Ocultar capa",
reorderLayer: "Reordenar capa",
linkSides: "Vincular lados",
unlinkSides: "Desvincular lados",
allSides: "Todo",
lockAspectRatio: "Bloquear proporción",
unlockAspectRatio: "Desbloquear proporción",
cornerRadius: "Radio de esquina",
independentCorners: "Esquinas independientes",
topLeft: "SI",
topRight: "SD",
bottomLeft: "II",
bottomRight: "ID",
blend: "Mezcla",
border: "Borde",
outline: "Contorno",
inside: "Interior",
outside: "Exterior",
center: "Centro",
dropShadow: "Sombra paralela",
addDropShadow: "Añadir sombra paralela",
innerShadow: "Sombra interior",
layerBlur: "Desenfoque de capa",
blur: "Desenfoque",
spread: "Expansión",
},
},
layersPanel: {
title: "Capas",
screens: "Pantallas",
allScreens: "Todas las pantallas",
thumbnail: "Miniatura",
addScreen: "Añadir pantalla",
searchPlaceholder: "Buscar capas...",
empty: "Sin capas",
noMatches: "No hay capas coincidentes",
designLayers: "Capas de diseño",
codeLayers: "Capas de código",
elementLayers: "Capas de elementos",
collapse: "Contraer capa",
expand: "Expandir capa",
lock: "Bloquear capa",
unlock: "Desbloquear capa",
hide: "Ocultar capa",
show: "Mostrar capa",
rename: "Renombrar capa",
deleteBoardObject: "Eliminar objeto del lienzo",
copy: "Copiar",
pasteHere: "Pegar aquí",
duplicate: "Duplicar",
delete: "Eliminar",
group: "Agrupar",
ungroup: "Desagrupar",
bringForward: "Traer adelante",
bringToFront: "Traer al frente",
sendBackward: "Enviar atrás",
sendToBack: "Enviar al fondo",
},
},
"fr-FR": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "Suggérer une mise en page auto…",
title: "Suggérer une mise en page auto",
description:
"Vérifiez la disposition déduite de la géométrie mesurée. Rien ne change avant l’application.",
preview: "Aperçu de la mise en page auto",
sizing: "Dimensionnement",
fixed: "Fixe",
hug: "Ajusté",
cancel: "Annuler",
apply: "Appliquer la mise en page auto",
selectContainer: "Sélectionnez un conteneur avec des enfants.",
stale: "Le conteneur a changé. Générez un nouvel aperçu.",
warnings: {
overlap:
"Des enfants se chevauchent ; la proposition ne peut pas être appliquée sûrement.",
irregular:
"L’espacement est irrégulier ; l’écart médian est affiché.",
transformed:
"Les enfants transformés nécessitent une vérification manuelle.",
},
},
toasts: {
annotationSendError:
"Impossible d’envoyer les annotations. Votre dessin est toujours là ; réessayez.",
propsCopied: "Propriétés copiées",
propsPasted: "Propriétés collées",
primitiveInsertFailed: "Impossible d’ajouter ce calque à l’écran",
layerMoveFailed: "Impossible de déplacer ce calque",
layerMoveRedirected:
"Déplacé à proximité de son emplacement d’origine — la cible exacte n’est pas modifiable",
duplicateElementFailed: "Impossible de dupliquer cet élément",
eyedropperUnsupported:
"La pipette n'est pas prise en charge par ce navigateur",
},
},
editPanel: {
labels: {
addLayer: "Ajouter un calque",
removeLayer: "Supprimer le calque",
showLayer: "Afficher le calque",
hideLayer: "Masquer le calque",
reorderLayer: "Réorganiser le calque",
linkSides: "Lier les côtés",
unlinkSides: "Délier les côtés",
allSides: "Tout",
lockAspectRatio: "Verrouiller les proportions",
unlockAspectRatio: "Déverrouiller les proportions",
cornerRadius: "Rayon d’angle",
independentCorners: "Angles indépendants",
topLeft: "HG",
topRight: "HD",
bottomLeft: "BG",
bottomRight: "BD",
blend: "Fusion",
border: "Bordure",
outline: "Contour",
inside: "Intérieur",
outside: "Extérieur",
center: "Centre",
dropShadow: "Ombre portée",
addDropShadow: "Ajouter une ombre portée",
innerShadow: "Ombre interne",
layerBlur: "Flou de calque",
blur: "Flou",
spread: "Diffusion",
},
},
layersPanel: {
title: "Calques",
screens: "Écrans",
allScreens: "Tous les écrans",
thumbnail: "Miniature",
addScreen: "Ajouter un écran",
searchPlaceholder: "Rechercher des calques...",
empty: "Aucun calque",
noMatches: "Aucun calque correspondant",
designLayers: "Calques de design",
codeLayers: "Calques de code",
elementLayers: "Calques d’éléments",
collapse: "Réduire le calque",
expand: "Développer le calque",
lock: "Verrouiller le calque",
unlock: "Déverrouiller le calque",
hide: "Masquer le calque",
show: "Afficher le calque",
rename: "Renommer le calque",
deleteBoardObject: "Supprimer l’objet du canevas",
copy: "Copier",
pasteHere: "Coller ici",
duplicate: "Dupliquer",
delete: "Supprimer",
group: "Grouper",
ungroup: "Dissocier",
bringForward: "Avancer",
bringToFront: "Mettre au premier plan",
sendBackward: "Reculer",
sendToBack: "Mettre à l’arrière-plan",
},
},
"de-DE": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "Auto-Layout vorschlagen…",
title: "Auto-Layout vorschlagen",
description:
"Prüfe das aus der gemessenen Geometrie abgeleitete Layout. Bis zum Anwenden bleibt alles unverändert.",
preview: "Auto-Layout-Vorschau",
sizing: "Größenanpassung",
fixed: "Fest",
hug: "Inhalt",
cancel: "Abbrechen",
apply: "Auto-Layout anwenden",
selectContainer: "Wähle einen Container mit untergeordneten Ebenen.",
stale: "Der Container wurde geändert. Erstelle eine neue Vorschau.",
warnings: {
overlap:
"Einige Ebenen überlappen; der Vorschlag kann nicht sicher angewendet werden.",
irregular:
"Die Abstände sind unregelmäßig; der Median wird angezeigt.",
transformed: "Transformierte Ebenen müssen manuell geprüft werden.",
},
},
toasts: {
annotationSendError:
"Die Anmerkungen konnten nicht gesendet werden. Deine Zeichnung ist noch da – versuche es erneut.",
propsCopied: "Eigenschaften kopiert",
propsPasted: "Eigenschaften eingefügt",
primitiveInsertFailed:
"Diese Ebene konnte nicht zur Ansicht hinzugefügt werden",
layerMoveFailed: "Diese Ebene konnte nicht verschoben werden",
layerMoveRedirected:
"In die Nähe der ursprünglichen Stelle verschoben — das genaue Ziel ist nicht bearbeitbar",
duplicateElementFailed: "Dieses Element konnte nicht dupliziert werden",
eyedropperUnsupported:
"Die Pipette wird von diesem Browser nicht unterstützt",
},
},
editPanel: {
labels: {
addLayer: "Ebene hinzufügen",
removeLayer: "Ebene entfernen",
showLayer: "Ebene anzeigen",
hideLayer: "Ebene ausblenden",
reorderLayer: "Ebene neu anordnen",
linkSides: "Seiten verknüpfen",
unlinkSides: "Seiten lösen",
allSides: "Alle",
lockAspectRatio: "Seitenverhältnis sperren",
unlockAspectRatio: "Seitenverhältnis entsperren",
cornerRadius: "Eckenradius",
independentCorners: "Unabhängige Ecken",
topLeft: "OL",
topRight: "OR",
bottomLeft: "UL",
bottomRight: "UR",
blend: "Mischung",
border: "Rahmen",
outline: "Kontur",
inside: "Innen",
outside: "Außen",
center: "Mitte",
dropShadow: "Schlagschatten",
addDropShadow: "Schlagschatten hinzufügen",
innerShadow: "Innerer Schatten",
layerBlur: "Ebenenunschärfe",
blur: "Unschärfe",
spread: "Ausbreitung",
},
},
layersPanel: {
title: "Ebenen",
screens: "Screens",
allScreens: "Alle Screens",
thumbnail: "Miniaturansicht",
addScreen: "Screen hinzufügen",
searchPlaceholder: "Ebenen suchen...",
empty: "Keine Ebenen",
noMatches: "Keine passenden Ebenen",
designLayers: "Design-Ebenen",
codeLayers: "Code-Ebenen",
elementLayers: "Element-Ebenen",
collapse: "Ebene einklappen",
expand: "Ebene ausklappen",
lock: "Ebene sperren",
unlock: "Ebene entsperren",
hide: "Ebene ausblenden",
show: "Ebene anzeigen",
rename: "Ebene umbenennen",
deleteBoardObject: "Canvas-Objekt löschen",
copy: "Kopieren",
pasteHere: "Hier einfügen",
duplicate: "Duplizieren",
delete: "Löschen",
group: "Gruppieren",
ungroup: "Gruppierung aufheben",
bringForward: "Nach vorne",
bringToFront: "In den Vordergrund",
sendBackward: "Nach hinten",
sendToBack: "In den Hintergrund",
},
},
"ja-JP": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "オートレイアウトを提案…",
title: "オートレイアウトを提案",
description:
"測定した子要素の形状から推定したレイアウトを確認します。適用するまで変更されません。",
preview: "オートレイアウトのプレビュー",
sizing: "サイズ調整",
fixed: "固定",
hug: "内容に合わせる",
cancel: "キャンセル",
apply: "オートレイアウトを適用",
selectContainer: "子要素を含むコンテナを1つ選択してください。",
stale: "コンテナが変更されました。新しい提案をプレビューしてください。",
warnings: {
overlap: "子要素が重なっているため、安全に適用できません。",
irregular: "間隔が不規則です。中央値を表示しています。",
transformed: "変形した子要素は手動確認が必要です。",
},
},
toasts: {
annotationSendError:
"注釈を送信できませんでした。描画はそのまま残っています。もう一度お試しください。",
propsCopied: "プロパティをコピーしました",
propsPasted: "プロパティを貼り付けました",
primitiveInsertFailed: "そのレイヤーを画面に追加できませんでした",
layerMoveFailed: "そのレイヤーを移動できませんでした",
layerMoveRedirected:
"元の位置の近くに移動しました — 正確なドロップ先は編集できません",
duplicateElementFailed: "その要素を複製できませんでした",
eyedropperUnsupported: "このブラウザではスポイトツールを使用できません",
},
},
editPanel: {
labels: {
addLayer: "レイヤーを追加",
removeLayer: "レイヤーを削除",
showLayer: "レイヤーを表示",
hideLayer: "レイヤーを非表示",
reorderLayer: "レイヤーを並べ替え",
linkSides: "辺をリンク",
unlinkSides: "辺のリンクを解除",
allSides: "すべて",
lockAspectRatio: "縦横比を固定",
unlockAspectRatio: "縦横比の固定を解除",
cornerRadius: "角丸",
independentCorners: "個別の角",
topLeft: "左上",
topRight: "右上",
bottomLeft: "左下",
bottomRight: "右下",
blend: "ブレンド",
border: "境界線",
outline: "アウトライン",
inside: "内側",
outside: "外側",
center: "中央",
dropShadow: "ドロップシャドウ",
addDropShadow: "ドロップシャドウを追加",
innerShadow: "内側シャドウ",
layerBlur: "レイヤーブラー",
blur: "ブラー",
spread: "スプレッド",
},
},
layersPanel: {
title: "レイヤー",
screens: "画面",
allScreens: "すべての画面",
thumbnail: "サムネイル",
addScreen: "画面を追加",
searchPlaceholder: "レイヤーを検索...",
empty: "レイヤーがありません",
noMatches: "一致するレイヤーがありません",
designLayers: "デザインレイヤー",
codeLayers: "コードレイヤー",
elementLayers: "要素レイヤー",
collapse: "レイヤーを折りたたむ",
expand: "レイヤーを展開",
lock: "レイヤーをロック",
unlock: "レイヤーのロックを解除",
hide: "レイヤーを非表示",
show: "レイヤーを表示",
rename: "レイヤー名を変更",
deleteBoardObject: "キャンバスオブジェクトを削除",
copy: "コピー",
pasteHere: "ここに貼り付け",
duplicate: "複製",
delete: "削除",
group: "グループ化",
ungroup: "グループ解除",
bringForward: "前面へ移動",
bringToFront: "最前面へ移動",
sendBackward: "背面へ移動",
sendToBack: "最背面へ移動",
},
},
"ko-KR": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "오토 레이아웃 제안…",
title: "오토 레이아웃 제안",
description:
"측정된 자식 도형에서 추론한 레이아웃을 검토합니다. 적용 전에는 변경되지 않습니다.",
preview: "오토 레이아웃 미리보기",
sizing: "크기 조정",
fixed: "고정",
hug: "내용에 맞춤",
cancel: "취소",
apply: "오토 레이아웃 적용",
selectContainer: "자식이 있는 컨테이너 하나를 선택하세요.",
stale: "컨테이너가 변경되었습니다. 새 제안을 미리 보세요.",
warnings: {
overlap: "일부 자식이 겹쳐 안전하게 적용할 수 없습니다.",
irregular: "간격이 불규칙하여 중앙값을 표시합니다.",
transformed: "변형된 자식은 수동 검토가 필요합니다.",
},
},
toasts: {
annotationSendError:
"주석을 보낼 수 없습니다. 그림은 그대로 남아 있으니 다시 시도하세요.",
propsCopied: "속성이 복사됨",
propsPasted: "속성이 붙여넣어짐",
primitiveInsertFailed: "해당 레이어를 화면에 추가할 수 없습니다",
layerMoveFailed: "해당 레이어를 이동할 수 없습니다",
layerMoveRedirected:
"원래 위치 근처로 이동되었습니다 — 정확한 놓기 대상은 편집할 수 없습니다",
duplicateElementFailed: "해당 요소를 복제할 수 없습니다",
eyedropperUnsupported: "이 브라우저에서는 스포이드를 지원하지 않습니다",
},
},
editPanel: {
labels: {
addLayer: "레이어 추가",
removeLayer: "레이어 제거",
showLayer: "레이어 표시",
hideLayer: "레이어 숨기기",
reorderLayer: "레이어 순서 변경",
linkSides: "면 연결",
unlinkSides: "면 연결 해제",
allSides: "모두",
lockAspectRatio: "가로세로 비율 잠금",
unlockAspectRatio: "가로세로 비율 잠금 해제",
cornerRadius: "모서리 반경",
independentCorners: "개별 모서리",
topLeft: "왼쪽 위",
topRight: "오른쪽 위",
bottomLeft: "왼쪽 아래",
bottomRight: "오른쪽 아래",
blend: "혼합",
border: "테두리",
outline: "윤곽선",
inside: "안쪽",
outside: "바깥쪽",
center: "중앙",
dropShadow: "그림자",
addDropShadow: "그림자 추가",
innerShadow: "내부 그림자",
layerBlur: "레이어 흐림",
blur: "흐림",
spread: "확산",
},
},
layersPanel: {
title: "레이어",
screens: "화면",
allScreens: "모든 화면",
thumbnail: "썸네일",
addScreen: "화면 추가",
searchPlaceholder: "레이어 검색...",
empty: "레이어 없음",
noMatches: "일치하는 레이어 없음",
designLayers: "디자인 레이어",
codeLayers: "코드 레이어",
elementLayers: "요소 레이어",
collapse: "레이어 접기",
expand: "레이어 펼치기",
lock: "레이어 잠금",
unlock: "레이어 잠금 해제",
hide: "레이어 숨기기",
show: "레이어 표시",
rename: "레이어 이름 변경",
deleteBoardObject: "캔버스 오브젝트 삭제",
copy: "복사",
pasteHere: "여기에 붙여넣기",
duplicate: "복제",
delete: "삭제",
group: "그룹화",
ungroup: "그룹 해제",
bringForward: "앞으로 가져오기",
bringToFront: "맨 앞으로 가져오기",
sendBackward: "뒤로 보내기",
sendToBack: "맨 뒤로 보내기",
},
},
"pt-BR": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "Sugerir layout automático…",
title: "Sugerir layout automático",
description:
"Revise o layout inferido da geometria medida. Nada muda até você aplicar.",
preview: "Prévia do layout automático",
sizing: "Dimensionamento",
fixed: "Fixo",
hug: "Ajustar",
cancel: "Cancelar",
apply: "Aplicar layout automático",
selectContainer: "Selecione um contêiner com filhos.",
stale: "O contêiner mudou. Gere uma nova prévia.",
warnings: {
overlap:
"Alguns filhos se sobrepõem; não é seguro aplicar a proposta.",
irregular: "O espaçamento é irregular; a mediana é exibida.",
transformed: "Filhos transformados exigem revisão manual.",
},
},
toasts: {
annotationSendError:
"Não foi possível enviar as anotações. Seu desenho continua aqui; tente novamente.",
propsCopied: "Propriedades copiadas",
propsPasted: "Propriedades coladas",
primitiveInsertFailed: "Não foi possível adicionar essa camada à tela",
layerMoveFailed: "Não foi possível mover essa camada",
layerMoveRedirected:
"Movido para perto do local original — o destino exato não é editável",
duplicateElementFailed: "Não foi possível duplicar esse elemento",
eyedropperUnsupported:
"O conta-gotas não é compatível com este navegador",
},
},
editPanel: {
labels: {
addLayer: "Adicionar camada",
removeLayer: "Remover camada",
showLayer: "Mostrar camada",
hideLayer: "Ocultar camada",
reorderLayer: "Reordenar camada",
linkSides: "Vincular lados",
unlinkSides: "Desvincular lados",
allSides: "Tudo",
lockAspectRatio: "Bloquear proporção",
unlockAspectRatio: "Desbloquear proporção",
cornerRadius: "Raio do canto",
independentCorners: "Cantos independentes",
topLeft: "SE",
topRight: "SD",
bottomLeft: "IE",
bottomRight: "ID",
blend: "Mistura",
border: "Borda",
outline: "Contorno",
inside: "Dentro",
outside: "Fora",
center: "Centro",
dropShadow: "Sombra projetada",
addDropShadow: "Adicionar sombra projetada",
innerShadow: "Sombra interna",
layerBlur: "Desfoque da camada",
blur: "Desfoque",
spread: "Espalhamento",
},
},
layersPanel: {
title: "Camadas",
screens: "Telas",
allScreens: "Todas as telas",
thumbnail: "Miniatura",
addScreen: "Adicionar tela",
searchPlaceholder: "Buscar camadas...",
empty: "Nenhuma camada",
noMatches: "Nenhuma camada corresponde",
designLayers: "Camadas de design",
codeLayers: "Camadas de código",
elementLayers: "Camadas de elementos",
collapse: "Recolher camada",
expand: "Expandir camada",
lock: "Bloquear camada",
unlock: "Desbloquear camada",
hide: "Ocultar camada",
show: "Mostrar camada",
rename: "Renomear camada",
deleteBoardObject: "Excluir objeto da tela",
copy: "Copiar",
pasteHere: "Colar aqui",
duplicate: "Duplicar",
delete: "Excluir",
group: "Agrupar",
ungroup: "Desagrupar",
bringForward: "Trazer para frente",
bringToFront: "Trazer para o topo",
sendBackward: "Enviar para trás",
sendToBack: "Enviar para o fundo",
},
},
"hi-IN": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "ऑटो लेआउट सुझाएँ…",
title: "ऑटो लेआउट सुझाएँ",
description:
"मापी गई ज्यामिति से अनुमानित लेआउट देखें। लागू करने तक कुछ नहीं बदलेगा।",
preview: "ऑटो लेआउट पूर्वावलोकन",
sizing: "आकार",
fixed: "निश्चित",
hug: "सामग्री के अनुसार",
cancel: "रद्द करें",
apply: "ऑटो लेआउट लागू करें",
selectContainer: "बच्चों वाला एक कंटेनर चुनें।",
stale: "कंटेनर बदल गया है। नया सुझाव देखें।",
warnings: {
overlap: "कुछ बच्चे ओवरलैप हैं; सुझाव सुरक्षित रूप से लागू नहीं हो सकता।",
irregular: "अंतर अनियमित है; मध्य अंतर दिखाया गया है।",
transformed: "रूपांतरित बच्चों की मैन्युअल समीक्षा आवश्यक है।",
},
},
toasts: {
annotationSendError:
"एनोटेशन नहीं भेजे जा सके। आपकी ड्रॉइंग यहीं सुरक्षित है—फिर से कोशिश करें।",
propsCopied: "गुण कॉपी किए गए",
propsPasted: "गुण चिपकाए गए",
primitiveInsertFailed: "उस परत को स्क्रीन में नहीं जोड़ा जा सका",
layerMoveFailed: "उस परत को स्थानांतरित नहीं किया जा सका",
layerMoveRedirected:
"मूल स्थान के पास ले जाया गया — सटीक ड्रॉप लक्ष्य संपादन योग्य नहीं है",
duplicateElementFailed: "उस तत्व की प्रतिलिपि नहीं बनाई जा सकी",
eyedropperUnsupported: "इस ब्राउज़र में आई-ड्रॉपर समर्थित नहीं है",
},
},
editPanel: {
labels: {
addLayer: "परत जोड़ें",
removeLayer: "परत हटाएं",
showLayer: "परत दिखाएं",
hideLayer: "परत छिपाएं",
reorderLayer: "परत पुनः क्रमित करें",
linkSides: "किनारे लिंक करें",
unlinkSides: "किनारे अनलिंक करें",
allSides: "सभी",
lockAspectRatio: "पक्षानुपात लॉक करें",
unlockAspectRatio: "पक्षानुपात अनलॉक करें",
cornerRadius: "कोने की त्रिज्या",
independentCorners: "स्वतंत्र कोने",
topLeft: "ऊपर बायां",
topRight: "ऊपर दायां",
bottomLeft: "नीचे बायां",
bottomRight: "नीचे दायां",
blend: "मिश्रण",
border: "बॉर्डर",
outline: "आउटलाइन",
inside: "अंदर",
outside: "बाहर",
center: "केंद्र",
dropShadow: "ड्रॉप शैडो",
addDropShadow: "ड्रॉप शैडो जोड़ें",
innerShadow: "अंदरूनी शैडो",
layerBlur: "लेयर ब्लर",
blur: "ब्लर",
spread: "फैलाव",
},
},
layersPanel: {
title: "परतें",
screens: "स्क्रीन",
allScreens: "सभी स्क्रीन",
thumbnail: "थंबनेल",
addScreen: "स्क्रीन जोड़ें",
searchPlaceholder: "परतें खोजें...",
empty: "कोई परत नहीं",
noMatches: "कोई मेल खाती परत नहीं",
designLayers: "डिज़ाइन परतें",
codeLayers: "कोड परतें",
elementLayers: "एलिमेंट परतें",
collapse: "परत समेटें",
expand: "परत फैलाएं",
lock: "परत लॉक करें",
unlock: "परत अनलॉक करें",
hide: "परत छिपाएं",
show: "परत दिखाएं",
rename: "परत का नाम बदलें",
deleteBoardObject: "कैनवास ऑब्जेक्ट हटाएं",
copy: "कॉपी करें",
pasteHere: "यहां चिपकाएं",
duplicate: "डुप्लिकेट करें",
delete: "हटाएं",
group: "समूह बनाएं",
ungroup: "समूह हटाएं",
bringForward: "आगे लाएं",
bringToFront: "सबसे आगे लाएं",
sendBackward: "पीछे भेजें",
sendToBack: "सबसे पीछे भेजें",
},
},
"ar-SA": {
designEditor: {
autoLayoutSuggestion: {
menuLabel: "اقتراح تخطيط تلقائي…",
title: "اقتراح تخطيط تلقائي",
description:
"راجع التخطيط المستنتج من القياسات. لن يتغير شيء حتى تطبقه.",
preview: "معاينة التخطيط التلقائي",
sizing: "التحجيم",
fixed: "ثابت",
hug: "ملائم للمحتوى",
cancel: "إلغاء",
apply: "تطبيق التخطيط التلقائي",
selectContainer: "حدد حاوية واحدة تحتوي على عناصر فرعية.",
stale: "تغيرت الحاوية. عاين اقتراحا جديدا.",
warnings: {
overlap: "بعض العناصر متداخلة؛ لا يمكن تطبيق الاقتراح بأمان.",
irregular: "التباعد غير منتظم؛ تعرض الفجوة الوسيطة.",
transformed: "العناصر المحولة تحتاج إلى مراجعة يدوية.",
},
},
toasts: {
annotationSendError:
"تعذّر إرسال التعليقات التوضيحية. لا يزال الرسم محفوظًا هنا، فحاول مرة أخرى.",
propsCopied: "تم نسخ الخصائص",
propsPasted: "تم لصق الخصائص",
primitiveInsertFailed: "تعذرت إضافة تلك الطبقة إلى الشاشة",
layerMoveFailed: "تعذر نقل تلك الطبقة",
layerMoveRedirected:
"تم النقل بالقرب من الموضع الأصلي — الهدف الدقيق للإفلات غير قابل للتحرير",
duplicateElementFailed: "تعذّر تكرار هذا العنصر",
eyedropperUnsupported: "أداة القطارة غير مدعومة في هذا المتصفح",
},
},
editPanel: {
labels: {
addLayer: "إضافة طبقة",
removeLayer: "إزالة طبقة",
showLayer: "إظهار الطبقة",
hideLayer: "إخفاء الطبقة",
reorderLayer: "إعادة ترتيب الطبقة",
linkSides: "ربط الجوانب",
unlinkSides: "إلغاء ربط الجوانب",
allSides: "الكل",
lockAspectRatio: "قفل نسبة العرض إلى الارتفاع",
unlockAspectRatio: "إلغاء قفل نسبة العرض إلى الارتفاع",
cornerRadius: "نصف قطر الزاوية",
independentCorners: "زوايا مستقلة",
topLeft: "أعلى يسار",
topRight: "أعلى يمين",
bottomLeft: "أسفل يسار",
bottomRight: "أسفل يمين",
blend: "مزج",
border: "حد",
outline: "مخطط",
inside: "داخلي",
outside: "خارجي",
center: "وسط",
dropShadow: "ظل ساقط",
addDropShadow: "إضافة ظل ساقط",
innerShadow: "ظل داخلي",
layerBlur: "ضبابية الطبقة",
blur: "ضبابية",
spread: "انتشار",
},
},
layersPanel: {
title: "الطبقات",
screens: "الشاشات",
allScreens: "كل الشاشات",
thumbnail: "الصورة المصغرة",
addScreen: "إضافة شاشة",
searchPlaceholder: "البحث في الطبقات...",
empty: "لا توجد طبقات",
noMatches: "لا توجد طبقات مطابقة",
designLayers: "طبقات التصميم",
codeLayers: "طبقات الكود",
elementLayers: "طبقات العناصر",
collapse: "طي الطبقة",
expand: "توسيع الطبقة",
lock: "قفل الطبقة",
unlock: "فتح قفل الطبقة",
hide: "إخفاء الطبقة",
show: "إظهار الطبقة",
rename: "إعادة تسمية الطبقة",
deleteBoardObject: "حذف كائن اللوحة",
copy: "نسخ",
pasteHere: "لصق هنا",
duplicate: "تكرار",
delete: "حذف",
group: "تجميع",
ungroup: "إلغاء التجميع",
bringForward: "إحضار للأمام",
bringToFront: "إحضار إلى الأمام",
sendBackward: "إرسال للخلف",
sendToBack: "إرسال إلى الخلف",
},
},
} satisfies Record, PartialMessages>;
const designShapeToolOverrides = {
"zh-TW": {
editPanel: {
textResize: {
autoWidth: "自動寬度",
autoHeight: "自動高度",
fixed: "固定大小",
},
},
designEditor: {
tools: {
line: "線條",
arrow: "箭頭",
ellipse: "橢圓",
polygon: "多邊形",
star: "星形",
imageVideo: "圖片/影片...",
},
},
},
"zh-CN": {
editPanel: {
textResize: {
autoWidth: "自动宽度",
autoHeight: "自动高度",
fixed: "固定大小",
},
},
designEditor: {
tools: {
line: "线条",
arrow: "箭头",
ellipse: "椭圆",
polygon: "多边形",
star: "星形",
imageVideo: "图片/视频...",
},
},
},
"es-ES": {
editPanel: {
textResize: {
autoWidth: "Ancho automático",
autoHeight: "Alto automático",
fixed: "Tamaño fijo",
},
},
designEditor: {
tools: {
line: "Línea",
arrow: "Flecha",
ellipse: "Elipse",
polygon: "Polígono",
star: "Estrella",
imageVideo: "Imagen/video...",
},
},
},
"fr-FR": {
editPanel: {
textResize: {
autoWidth: "Largeur auto",
autoHeight: "Hauteur auto",
fixed: "Taille fixe",
},
},
designEditor: {
tools: {
line: "Ligne",
arrow: "Flèche",
ellipse: "Ellipse",
polygon: "Polygone",
star: "Étoile",
imageVideo: "Image/vidéo...",
},
},
},
"de-DE": {
editPanel: {
textResize: {
autoWidth: "Automatische Breite",
autoHeight: "Automatische Höhe",
fixed: "Feste Größe",
},
},
designEditor: {
tools: {
line: "Linie",
arrow: "Pfeil",
ellipse: "Ellipse",
polygon: "Polygon",
star: "Stern",
imageVideo: "Bild/Video...",
},
},
},
"ja-JP": {
editPanel: {
textResize: {
autoWidth: "自動幅",
autoHeight: "自動高さ",
fixed: "固定サイズ",
},
},
designEditor: {
tools: {
line: "線",
arrow: "矢印",
ellipse: "楕円",
polygon: "多角形",
star: "星",
imageVideo: "画像/動画...",
},
},
},
"ko-KR": {
editPanel: {
textResize: {
autoWidth: "자동 너비",
autoHeight: "자동 높이",
fixed: "고정 크기",
},
},
designEditor: {
tools: {
line: "선",
arrow: "화살표",
ellipse: "타원",
polygon: "다각형",
star: "별",
imageVideo: "이미지/동영상...",
},
},
},
"pt-BR": {
editPanel: {
textResize: {
autoWidth: "Largura automática",
autoHeight: "Altura automática",
fixed: "Tamanho fixo",
},
},
designEditor: {
tools: {
line: "Linha",
arrow: "Seta",
ellipse: "Elipse",
polygon: "Polígono",
star: "Estrela",
imageVideo: "Imagem/vídeo...",
},
},
},
"hi-IN": {
editPanel: {
textResize: {
autoWidth: "ऑटो चौड़ाई",
autoHeight: "ऑटो ऊंचाई",
fixed: "स्थिर आकार",
},
},
designEditor: {
tools: {
line: "रेखा",
arrow: "तीर",
ellipse: "दीर्घवृत्त",
polygon: "बहुभुज",
star: "तारा",
imageVideo: "छवि/वीडियो...",
},
},
},
"ar-SA": {
editPanel: {
textResize: {
autoWidth: "عرض تلقائي",
autoHeight: "ارتفاع تلقائي",
fixed: "حجم ثابت",
},
},
designEditor: {
tools: {
line: "خط",
arrow: "سهم",
ellipse: "شكل بيضاوي",
polygon: "مضلع",
star: "نجمة",
imageVideo: "صورة/فيديو...",
},
},
},
} satisfies Record, PartialMessages>;
const designPublicShareOverrides = {
"zh-TW": {
designEditor: {
share: "分享",
signUpToSave: "註冊以儲存",
signUpToSaveDescription:
"註冊免費帳號即可儲存設計、畫面版面,並產生新的方向。",
signUpToShare: "註冊以分享",
shareEditorLink: "設計編輯器連結",
shareEditorLinkDescription: "有權限的任何人都能在編輯器中開啟這個設計。",
toasts: {
saveCopyError: "無法儲存這個設計的副本",
auditRunFailed: "無法執行設計稽核",
},
},
visualEdit: {
eyebrow: "視覺編輯",
title: "登入前先檢視本機 App 畫面",
description:
"無需帳號即可開啟 visual-edit。只有在想儲存設計、保留畫面版面、分享給他人或產生新方向時才需要註冊。",
saveCta: "儲存",
openDesign: "開啟 Design",
templatesCta: "瀏覽範本",
previewLabel: "本機預覽",
layoutLabel: "畫面版面已可儲存",
},
routeTitles: {
visualEdit: "視覺編輯 - Design",
},
},
"zh-CN": {
designEditor: {
share: "分享",
signUpToSave: "注册以保存",
signUpToSaveDescription:
"注册免费帐户即可保存设计和屏幕布局,并生成新的方向。",
signUpToShare: "注册以共享",
shareEditorLink: "设计编辑器链接",
shareEditorLinkDescription:
"有访问权限的任何人都可以在编辑器中打开此设计。",
toasts: {
saveCopyError: "无法保存此设计的副本",
auditRunFailed: "无法运行设计审核",
},
},
visualEdit: {
eyebrow: "可视化编辑",
title: "登录前先检查本地应用屏幕",
description:
"无需帐户即可打开 visual-edit。只有在需要保存设计、保留屏幕布局、与他人共享或生成新方向时才注册。",
saveCta: "保存",
openDesign: "打开 Design",
templatesCta: "浏览模板",
previewLabel: "本地预览",
layoutLabel: "屏幕布局已可保存",
},
routeTitles: {
visualEdit: "可视化编辑 - Design",
},
},
"es-ES": {
designEditor: {
share: "Compartir",
signUpToSave: "Registrarse para guardar",
signUpToSaveDescription:
"Crea una cuenta gratis para guardar diseños, diseños de pantalla y generar nuevas direcciones.",
signUpToShare: "Registrarse para compartir",
shareEditorLink: "Enlace del editor de diseño",
shareEditorLinkDescription:
"Cualquier persona con acceso puede abrir este diseño en el editor.",
toasts: {
saveCopyError: "No se pudo guardar una copia de este diseño",
auditRunFailed: "No se pudo ejecutar la auditoria de diseno",
},
},
visualEdit: {
eyebrow: "Edicion visual",
title: "Inspecciona pantallas locales antes de iniciar sesion",
description:
"Abre visual-edit sin una cuenta. Registrate solo cuando quieras guardar diseños, conservar layouts de pantalla, compartir con otros o generar nuevas direcciones.",
saveCta: "Guardar",
openDesign: "Abrir Design",
templatesCta: "Explorar plantillas",
previewLabel: "Vista previa local",
layoutLabel: "Layout de pantalla listo para guardar",
},
routeTitles: {
visualEdit: "Edicion visual - Design",
},
},
"fr-FR": {
designEditor: {
share: "Partager",
signUpToSave: "S'inscrire pour enregistrer",
signUpToSaveDescription:
"Creez un compte gratuit pour enregistrer des designs, des mises en page et generer de nouvelles directions.",
signUpToShare: "S'inscrire pour partager",
shareEditorLink: "Lien de l'editeur de design",
shareEditorLinkDescription:
"Toute personne ayant acces peut ouvrir ce design dans l'editeur.",
toasts: {
saveCopyError: "Impossible d'enregistrer une copie de ce design",
auditRunFailed: "Impossible d'executer l'audit de design",
},
},
visualEdit: {
eyebrow: "Edition visuelle",
title: "Inspectez les ecrans locaux avant de vous connecter",
description:
"Ouvrez visual-edit sans compte. Inscrivez-vous seulement pour enregistrer des designs, conserver les mises en page, partager ou generer de nouvelles directions.",
saveCta: "Enregistrer",
openDesign: "Ouvrir Design",
templatesCta: "Parcourir les modeles",
previewLabel: "Apercu local",
layoutLabel: "Mise en page prete a enregistrer",
},
routeTitles: {
visualEdit: "Edition visuelle - Design",
},
},
"de-DE": {
designEditor: {
share: "Teilen",
signUpToSave: "Zum Speichern registrieren",
signUpToSaveDescription:
"Erstelle ein kostenloses Konto, um Designs und Screen-Layouts zu speichern und neue Richtungen zu generieren.",
signUpToShare: "Zum Teilen registrieren",
shareEditorLink: "Design-Editor-Link",
shareEditorLinkDescription:
"Alle mit Zugriff koennen dieses Design im Editor oeffnen.",
toasts: {
saveCopyError:
"Eine Kopie dieses Designs konnte nicht gespeichert werden",
auditRunFailed: "Design-Audit konnte nicht ausgefuehrt werden",
},
},
visualEdit: {
eyebrow: "Visuelle Bearbeitung",
title: "Lokale App-Screens vor der Anmeldung pruefen",
description:
"Oeffne visual-edit ohne Konto. Registriere dich erst, wenn du Designs speichern, Screen-Layouts behalten, teilen oder neue Richtungen generieren moechtest.",
saveCta: "Speichern",
openDesign: "Design oeffnen",
templatesCta: "Vorlagen durchsuchen",
previewLabel: "Lokale Vorschau",
layoutLabel: "Screen-Layout bereit zum Speichern",
},
routeTitles: {
visualEdit: "Visuelle Bearbeitung - Design",
},
},
"ja-JP": {
designEditor: {
share: "共有",
signUpToSave: "登録して保存",
signUpToSaveDescription:
"無料アカウントを作成して、デザインや画面レイアウトを保存し、新しい案を生成できます。",
signUpToShare: "登録して共有",
shareEditorLink: "デザインエディターリンク",
shareEditorLinkDescription:
"アクセス権のある人は、このデザインをエディターで開けます。",
toasts: {
saveCopyError: "このデザインのコピーを保存できませんでした",
auditRunFailed: "デザイン監査を実行できませんでした",
},
},
visualEdit: {
eyebrow: "ビジュアル編集",
title: "サインイン前にローカルアプリ画面を確認",
description:
"アカウントなしで visual-edit を開けます。デザインの保存、画面レイアウトの保持、共有、新しい方向の生成が必要なときだけ登録します。",
saveCta: "保存",
openDesign: "Design を開く",
templatesCta: "テンプレートを見る",
previewLabel: "ローカルプレビュー",
layoutLabel: "保存準備ができた画面レイアウト",
},
routeTitles: {
visualEdit: "ビジュアル編集 - Design",
},
},
"ko-KR": {
designEditor: {
share: "공유",
signUpToSave: "가입하고 저장",
signUpToSaveDescription:
"무료 계정을 만들어 디자인과 화면 레이아웃을 저장하고 새 방향을 생성하세요.",
signUpToShare: "가입하고 공유",
shareEditorLink: "디자인 편집기 링크",
shareEditorLinkDescription:
"액세스 권한이 있는 누구나 편집기에서 이 디자인을 열 수 있습니다.",
toasts: {
saveCopyError: "이 디자인의 사본을 저장할 수 없습니다",
auditRunFailed: "디자인 감사를 실행할 수 없습니다",
},
},
visualEdit: {
eyebrow: "비주얼 편집",
title: "로그인 전에 로컬 앱 화면 확인",
description:
"계정 없이 visual-edit를 열 수 있습니다. 디자인 저장, 화면 레이아웃 보관, 공유 또는 새 방향 생성이 필요할 때만 가입하세요.",
saveCta: "저장",
openDesign: "Design 열기",
templatesCta: "템플릿 찾아보기",
previewLabel: "로컬 미리보기",
layoutLabel: "저장할 준비가 된 화면 레이아웃",
},
routeTitles: {
visualEdit: "비주얼 편집 - Design",
},
},
"pt-BR": {
designEditor: {
share: "Compartilhar",
signUpToSave: "Criar conta para salvar",
signUpToSaveDescription:
"Crie uma conta gratis para salvar designs, layouts de tela e gerar novas direcoes.",
signUpToShare: "Criar conta para compartilhar",
shareEditorLink: "Link do editor de design",
shareEditorLinkDescription:
"Qualquer pessoa com acesso pode abrir este design no editor.",
toasts: {
saveCopyError: "Nao foi possivel salvar uma copia deste design",
auditRunFailed: "Nao foi possivel executar a auditoria de design",
},
},
visualEdit: {
eyebrow: "Edicao visual",
title: "Inspecione telas locais antes de entrar",
description:
"Abra o visual-edit sem uma conta. Crie uma conta apenas para salvar designs, manter layouts de tela, compartilhar ou gerar novas direcoes.",
saveCta: "Salvar",
openDesign: "Abrir Design",
templatesCta: "Ver modelos",
previewLabel: "Previa local",
layoutLabel: "Layout de tela pronto para salvar",
},
routeTitles: {
visualEdit: "Edicao visual - Design",
},
},
"hi-IN": {
designEditor: {
share: "साझा करें",
signUpToSave: "सहेजने के लिए साइन अप करें",
signUpToSaveDescription:
"designs, screen layouts सहेजने और नए options generate करने के लिए free account बनाएं।",
signUpToShare: "साझा करने के लिए sign up करें",
shareEditorLink: "design editor link",
shareEditorLinkDescription:
"access वाला कोई भी व्यक्ति इस design को editor में खोल सकता है।",
toasts: {
saveCopyError: "इस design की copy सहेजी नहीं जा सकी",
auditRunFailed: "design audit चलाया नहीं जा सका",
},
},
visualEdit: {
eyebrow: "visual edit",
title: "sign in से पहले local app screens देखें",
description:
"account के बिना visual-edit खोलें। designs सहेजने, screen layouts रखने, share करने या नए directions generate करने के लिए ही sign up करें।",
saveCta: "सहेजें",
openDesign: "Design खोलें",
templatesCta: "templates देखें",
previewLabel: "स्थानीय पूर्वावलोकन",
layoutLabel: "screen layout सहेजने के लिए तैयार",
},
routeTitles: {
visualEdit: "visual edit - Design",
},
},
"ar-SA": {
designEditor: {
share: "مشاركة",
signUpToSave: "سجل للحفظ",
signUpToSaveDescription:
"انشئ حسابا مجانيا لحفظ التصاميم وتخطيطات الشاشة وانشاء اتجاهات جديدة.",
signUpToShare: "سجل للمشاركة",
shareEditorLink: "رابط محرر التصميم",
shareEditorLinkDescription:
"يمكن لاي شخص لديه صلاحية الوصول فتح هذا التصميم في المحرر.",
toasts: {
saveCopyError: "تعذر حفظ نسخة من هذا التصميم",
auditRunFailed: "تعذر تشغيل تدقيق التصميم",
},
},
visualEdit: {
eyebrow: "تحرير مرئي",
title: "افحص شاشات التطبيق المحلية قبل تسجيل الدخول",
description:
"افتح visual-edit بدون حساب. سجل فقط عندما تريد حفظ التصاميم وتخطيطات الشاشة او مشاركتها او انشاء اتجاهات جديدة.",
saveCta: "حفظ",
openDesign: "افتح Design",
templatesCta: "تصفح القوالب",
previewLabel: "معاينة محلية",
layoutLabel: "تخطيط الشاشة جاهز للحفظ",
},
routeTitles: {
visualEdit: "تحرير مرئي - Design",
},
},
} satisfies Record, PartialMessages>;
const designVisualEditOverrides = {
"zh-TW": {
visualEdit: {
eyebrow: "視覺編輯",
title: "登入前先檢查本機應用畫面",
description:
"無需帳號即可開啟 visual-edit。只有在想儲存設計、保留畫面版面、與他人分享或生成新方向時才需要註冊。",
saveCta: "儲存",
openDesign: "開啟 Design",
templatesCta: "瀏覽範本",
previewLabel: "本機預覽",
layoutLabel: "畫面版面已可儲存",
},
routeTitles: {
visualEdit: "視覺編輯 - Design",
},
},
"zh-CN": {
visualEdit: {
eyebrow: "视觉编辑",
title: "登录前检查本地应用屏幕",
description:
"无需账号即可打开 visual-edit。只有在想保存设计、保留屏幕布局、与他人共享或生成新方向时才需要注册。",
saveCta: "保存",
openDesign: "打开 Design",
templatesCta: "浏览模板",
previewLabel: "本地预览",
layoutLabel: "屏幕布局已可保存",
},
routeTitles: {
visualEdit: "视觉编辑 - Design",
},
},
"es-ES": {
visualEdit: {
eyebrow: "Edicion visual",
title: "Inspecciona pantallas locales de la app antes de iniciar sesion",
description:
"Abre visual-edit sin cuenta. Registrate solo cuando quieras guardar disenos, conservar layouts de pantalla, compartir con otros o generar nuevas direcciones.",
saveCta: "Guardar",
openDesign: "Abrir Design",
templatesCta: "Ver plantillas",
previewLabel: "Vista previa local",
layoutLabel: "Layout de pantalla listo para guardar",
},
routeTitles: {
visualEdit: "Edicion visual - Design",
},
},
"fr-FR": {
visualEdit: {
eyebrow: "Edition visuelle",
title: "Inspectez les ecrans locaux de l'app avant connexion",
description:
"Ouvrez visual-edit sans compte. Inscrivez-vous seulement pour enregistrer des designs, conserver les mises en page, partager ou generer de nouvelles directions.",
saveCta: "Enregistrer",
openDesign: "Ouvrir Design",
templatesCta: "Parcourir les modeles",
previewLabel: "Apercu local",
layoutLabel: "Mise en page prete a enregistrer",
},
routeTitles: {
visualEdit: "Edition visuelle - Design",
},
},
"de-DE": {
visualEdit: {
eyebrow: "Visuelle Bearbeitung",
title: "Lokale App-Bildschirme vor der Anmeldung pruefen",
description:
"Oeffne visual-edit ohne Konto. Melde dich nur an, wenn du Designs speichern, Layouts behalten, teilen oder neue Richtungen generieren willst.",
saveCta: "Speichern",
openDesign: "Design oeffnen",
templatesCta: "Vorlagen durchsuchen",
previewLabel: "Lokale Vorschau",
layoutLabel: "Bildschirm-Layout bereit zum Speichern",
},
routeTitles: {
visualEdit: "Visuelle Bearbeitung - Design",
},
},
"ja-JP": {
visualEdit: {
eyebrow: "ビジュアル編集",
title: "サインイン前にローカルアプリ画面を確認",
description:
"アカウントなしで visual-edit を開けます。デザイン保存、画面レイアウト保持、共有、新しい方向の生成が必要なときだけ登録します。",
saveCta: "保存",
openDesign: "Design を開く",
templatesCta: "テンプレートを見る",
previewLabel: "ローカルプレビュー",
layoutLabel: "保存できる画面レイアウト",
},
routeTitles: {
visualEdit: "ビジュアル編集 - Design",
},
},
"ko-KR": {
visualEdit: {
eyebrow: "시각 편집",
title: "로그인 전에 로컬 앱 화면 검사",
description:
"계정 없이 visual-edit를 열 수 있습니다. 디자인 저장, 화면 레이아웃 유지, 공유, 새 방향 생성을 원할 때만 가입하세요.",
saveCta: "저장",
openDesign: "Design 열기",
templatesCta: "템플릿 둘러보기",
previewLabel: "로컬 미리보기",
layoutLabel: "저장할 준비가 된 화면 레이아웃",
},
routeTitles: {
visualEdit: "시각 편집 - Design",
},
},
"pt-BR": {
visualEdit: {
eyebrow: "Edicao visual",
title: "Inspecione telas locais do app antes de entrar",
description:
"Abra visual-edit sem conta. Cadastre-se apenas para salvar designs, manter layouts de tela, compartilhar ou gerar novas direcoes.",
saveCta: "Salvar",
openDesign: "Abrir Design",
templatesCta: "Ver modelos",
previewLabel: "Previa local",
layoutLabel: "Layout de tela pronto para salvar",
},
routeTitles: {
visualEdit: "Edicao visual - Design",
},
},
"hi-IN": {
visualEdit: {
eyebrow: "विजुअल एडिट",
title: "Sign in से पहले local app screens जांचें",
description:
"बिना account visual-edit खोलें। Designs save करने, screen layouts रखने, share करने या नई directions generate करने पर ही sign up करें।",
saveCta: "सहेजें",
openDesign: "Design खोलें",
templatesCta: "Templates देखें",
previewLabel: "स्थानीय पूर्वावलोकन",
layoutLabel: "Screen layout save करने के लिए ready",
},
routeTitles: {
visualEdit: "विजुअल एडिट - Design",
},
},
"ar-SA": {
visualEdit: {
eyebrow: "تحرير مرئي",
title: "افحص شاشات التطبيق المحلية قبل تسجيل الدخول",
description:
"افتح visual-edit بدون حساب. سجل فقط عندما تريد حفظ التصاميم أو الاحتفاظ بتخطيطات الشاشة أو المشاركة أو توليد اتجاهات جديدة.",
saveCta: "حفظ",
openDesign: "فتح Design",
templatesCta: "تصفح القوالب",
previewLabel: "معاينة محلية",
layoutLabel: "تخطيط الشاشة جاهز للحفظ",
},
routeTitles: {
visualEdit: "تحرير مرئي - Design",
},
},
} satisfies Record, PartialMessages>;
const designPendingVisualStyleOverrides = {
"zh-TW": {
designEditor: {
pendingVisualStyles: {
applyAria: "套用待處理的視覺樣式編輯",
applyButton: "套用樣式",
previewLabel: "待處理的視覺預覽",
applyDesignUpdates: "套用設計更新",
verifying: "正在驗證來源與執行階段…",
retryWithAgent: "重試來源驗證",
copyPrompt: "將提示複製給您的代理",
abortPreview: "中止預覽並互動",
agentMessage: "將待處理的視覺樣式編輯套用到來源。",
sentToast: "樣式編輯已傳送給 Design 代理",
verifiedToast: "已驗證來源與執行階段結構",
conflictToast:
"重新載入的執行階段與待處理的結構編輯不符。預覽仍可復原;請解決來源衝突後重試。",
sourceCheckFailedToast:
"無法驗證連接的來源檔案。預覽已保留,您可以重試或復原。",
copiedToast: "樣式提示已複製",
abortedToast: "待處理的預覽已捨棄",
interactBlocked: "請先套用或中止待處理的即時編輯,再切換到互動模式。",
leaveTitle: "離開前要套用樣式嗎?",
leaveDescriptionOne:
"即時預覽中有 {{count}} 個待處理的視覺樣式編輯。現在離開會捨棄該未套用的樣式變更。",
leaveDescriptionOther:
"即時預覽中有 {{count}} 個待處理的視覺樣式編輯。現在離開會捨棄這些未套用的樣式變更。",
stay: "留在這裡",
leave: "不套用並離開",
},
},
},
"zh-CN": {
designEditor: {
pendingVisualStyles: {
applyAria: "应用待处理的视觉样式编辑",
applyButton: "应用样式",
previewLabel: "待处理的视觉预览",
applyDesignUpdates: "应用设计更新",
verifying: "正在验证源文件和运行时…",
retryWithAgent: "重试源文件验证",
copyPrompt: "将提示复制给你的代理",
abortPreview: "中止预览并互动",
agentMessage: "将待处理的视觉样式编辑应用到源文件。",
sentToast: "样式编辑已发送给 Design 代理",
verifiedToast: "已验证源文件和运行时结构",
conflictToast:
"重新加载的运行时与待处理的结构编辑不匹配。预览仍可撤销;请解决源文件冲突后重试。",
sourceCheckFailedToast:
"无法验证已连接的源文件。预览已保留,你可以重试或撤销。",
copiedToast: "样式提示已复制",
abortedToast: "待处理的预览已丢弃",
interactBlocked: "请先应用或中止待处理的实时编辑,再切换到互动模式。",
leaveTitle: "离开前应用样式?",
leaveDescriptionOne:
"实时预览中有 {{count}} 个待处理的视觉样式编辑。现在离开会丢弃这个未应用的样式更改。",
leaveDescriptionOther:
"实时预览中有 {{count}} 个待处理的视觉样式编辑。现在离开会丢弃这些未应用的样式更改。",
stay: "留在这里",
leave: "不应用并离开",
},
},
},
"es-ES": {
designEditor: {
pendingVisualStyles: {
applyAria: "Aplicar ediciones visuales de estilo pendientes",
applyButton: "Aplicar estilos",
previewLabel: "Vista previa visual pendiente",
applyDesignUpdates: "Aplicar actualizaciones de diseño",
verifying: "Verificando el código y el runtime…",
retryWithAgent: "Reintentar verificación del código",
copyPrompt: "Copiar prompt a tu agente",
abortPreview: "Cancelar vista previa e interactuar",
agentMessage:
"Aplica las ediciones visuales de estilo pendientes al código fuente.",
sentToast: "Ediciones de estilo enviadas al agente de Design",
verifiedToast: "Código y estructura del runtime verificados",
conflictToast:
"El runtime recargado no coincide con la edición estructural pendiente. La vista previa aún se puede deshacer; resuelve el conflicto y vuelve a intentarlo.",
sourceCheckFailedToast:
"No se pudieron verificar los archivos conectados. Se conservó la vista previa para reintentar o deshacer.",
copiedToast: "Prompt de estilo copiado",
abortedToast: "Vista previa pendiente descartada",
interactBlocked:
"Aplica o cancela las ediciones en vivo pendientes antes de cambiar a Interactuar.",
leaveTitle: "¿Aplicar estilos antes de salir?",
leaveDescriptionOne:
"Tienes {{count}} edición visual de estilo pendiente en la vista previa en vivo. Si sales ahora, se descartará ese cambio de estilo sin aplicar.",
leaveDescriptionOther:
"Tienes {{count}} ediciones visuales de estilo pendientes en la vista previa en vivo. Si sales ahora, se descartarán esos cambios de estilo sin aplicar.",
stay: "Quedarse aquí",
leave: "Salir sin aplicar",
},
},
},
"fr-FR": {
designEditor: {
pendingVisualStyles: {
applyAria: "Appliquer les modifications visuelles de style en attente",
applyButton: "Appliquer les styles",
previewLabel: "Aperçu visuel en attente",
applyDesignUpdates: "Appliquer les mises à jour du design",
verifying: "Vérification de la source et du runtime…",
retryWithAgent: "Réessayer la vérification de la source",
copyPrompt: "Copier le prompt vers votre agent",
abortPreview: "Annuler l’aperçu et interagir",
agentMessage:
"Appliquez les modifications visuelles de style en attente à la source.",
sentToast: "Modifications de style envoyées à l’agent Design",
verifiedToast: "Source et structure du runtime vérifiées",
conflictToast:
"Le runtime rechargé ne correspond pas à la modification de structure en attente. L’aperçu reste annulable ; résolvez le conflit puis réessayez.",
sourceCheckFailedToast:
"Impossible de vérifier les fichiers source connectés. L’aperçu a été conservé pour réessayer ou annuler.",
copiedToast: "Prompt de style copié",
abortedToast: "Aperçu en attente supprimé",
interactBlocked:
"Appliquez ou annulez les modifications en direct en attente avant de passer à Interagir.",
leaveTitle: "Appliquer les styles avant de quitter ?",
leaveDescriptionOne:
"Vous avez {{count}} modification visuelle de style en attente dans l’aperçu en direct. Quitter maintenant supprimera cette modification non appliquée.",
leaveDescriptionOther:
"Vous avez {{count}} modifications visuelles de style en attente dans l’aperçu en direct. Quitter maintenant supprimera ces modifications non appliquées.",
stay: "Rester ici",
leave: "Quitter sans appliquer",
},
},
},
"de-DE": {
designEditor: {
pendingVisualStyles: {
applyAria: "Ausstehende visuelle Stiländerungen anwenden",
applyButton: "Stile anwenden",
previewLabel: "Ausstehende visuelle Vorschau",
applyDesignUpdates: "Design-Updates anwenden",
verifying: "Quelle und Laufzeit werden überprüft…",
retryWithAgent: "Quellprüfung wiederholen",
copyPrompt: "Prompt an deinen Agent kopieren",
abortPreview: "Vorschau abbrechen und interagieren",
agentMessage:
"Wende die ausstehenden visuellen Stiländerungen auf die Quelle an.",
sentToast: "Stiländerungen an den Design-Agent gesendet",
verifiedToast: "Quelle und Laufzeitstruktur überprüft",
conflictToast:
"Die neu geladene Laufzeit stimmt nicht mit der ausstehenden Strukturänderung überein. Die Vorschau kann weiterhin rückgängig gemacht werden; löse den Konflikt und versuche es erneut.",
sourceCheckFailedToast:
"Die verbundenen Quelldateien konnten nicht überprüft werden. Die Vorschau wurde zum Wiederholen oder Rückgängigmachen beibehalten.",
copiedToast: "Stil-Prompt kopiert",
abortedToast: "Ausstehende Vorschau verworfen",
interactBlocked:
"Wende ausstehende Live-Änderungen an oder brich sie ab, bevor du zu Interagieren wechselst.",
leaveTitle: "Stile vor dem Verlassen anwenden?",
leaveDescriptionOne:
"In der Live-Vorschau gibt es {{count}} ausstehende visuelle Stiländerung. Wenn du jetzt gehst, wird diese nicht angewendete Stiländerung verworfen.",
leaveDescriptionOther:
"In der Live-Vorschau gibt es {{count}} ausstehende visuelle Stiländerungen. Wenn du jetzt gehst, werden diese nicht angewendeten Stiländerungen verworfen.",
stay: "Hier bleiben",
leave: "Ohne Anwenden verlassen",
},
},
},
"ja-JP": {
designEditor: {
pendingVisualStyles: {
applyAria: "保留中のビジュアルスタイル編集を適用",
applyButton: "スタイルを適用",
previewLabel: "保留中のビジュアルプレビュー",
applyDesignUpdates: "デザインの更新を適用",
verifying: "ソースとランタイムを検証中…",
retryWithAgent: "ソース検証を再試行",
copyPrompt: "エージェントにプロンプトをコピー",
abortPreview: "プレビューを中止して操作",
agentMessage:
"保留中のビジュアルスタイル編集をソースに適用してください。",
sentToast: "スタイル編集を Design エージェントに送信しました",
verifiedToast: "ソースとランタイム構造を検証しました",
conflictToast:
"再読み込みしたランタイムが保留中の構造編集と一致しません。プレビューは元に戻せます。ソースの競合を解決して再試行してください。",
sourceCheckFailedToast:
"接続されたソースファイルを検証できませんでした。再試行または元に戻せるよう、プレビューは保持されています。",
copiedToast: "スタイルプロンプトをコピーしました",
abortedToast: "保留中のプレビューを破棄しました",
interactBlocked:
"操作モードに切り替える前に、保留中のライブ編集を適用するか中止してください。",
leaveTitle: "離れる前にスタイルを適用しますか?",
leaveDescriptionOne:
"ライブプレビューに {{count}} 件の保留中のビジュアルスタイル編集があります。今離れると、未適用のスタイル変更は破棄されます。",
leaveDescriptionOther:
"ライブプレビューに {{count}} 件の保留中のビジュアルスタイル編集があります。今離れると、未適用のスタイル変更は破棄されます。",
stay: "ここに留まる",
leave: "適用せずに離れる",
},
},
},
"ko-KR": {
designEditor: {
pendingVisualStyles: {
applyAria: "보류 중인 시각 스타일 편집 적용",
applyButton: "스타일 적용",
previewLabel: "보류 중인 시각 미리보기",
applyDesignUpdates: "디자인 업데이트 적용",
verifying: "소스와 런타임 확인 중…",
retryWithAgent: "소스 확인 다시 시도",
copyPrompt: "에이전트에 프롬프트 복사",
abortPreview: "미리보기를 중단하고 상호작용",
agentMessage: "보류 중인 시각 스타일 편집을 소스에 적용하세요.",
sentToast: "스타일 편집을 Design 에이전트로 보냈습니다",
verifiedToast: "소스와 런타임 구조를 확인했습니다",
conflictToast:
"다시 로드된 런타임이 보류 중인 구조 편집과 일치하지 않습니다. 미리보기는 계속 실행 취소할 수 있으니 소스 충돌을 해결한 뒤 다시 시도하세요.",
sourceCheckFailedToast:
"연결된 소스 파일을 확인할 수 없습니다. 다시 시도하거나 실행 취소할 수 있도록 미리보기를 유지했습니다.",
copiedToast: "스타일 프롬프트가 복사되었습니다",
abortedToast: "보류 중인 미리보기를 버렸습니다",
interactBlocked:
"상호작용 모드로 전환하기 전에 보류 중인 라이브 편집을 적용하거나 중단하세요.",
leaveTitle: "나가기 전에 스타일을 적용할까요?",
leaveDescriptionOne:
"라이브 미리보기에 보류 중인 시각 스타일 편집이 {{count}}개 있습니다. 지금 나가면 적용되지 않은 스타일 변경이 삭제됩니다.",
leaveDescriptionOther:
"라이브 미리보기에 보류 중인 시각 스타일 편집이 {{count}}개 있습니다. 지금 나가면 적용되지 않은 스타일 변경이 삭제됩니다.",
stay: "여기에 머물기",
leave: "적용하지 않고 나가기",
},
},
},
"pt-BR": {
designEditor: {
pendingVisualStyles: {
applyAria: "Aplicar edições visuais de estilo pendentes",
applyButton: "Aplicar estilos",
previewLabel: "Prévia visual pendente",
applyDesignUpdates: "Aplicar atualizações de design",
verifying: "Verificando origem e runtime…",
retryWithAgent: "Tentar verificar a origem novamente",
copyPrompt: "Copiar prompt para seu agente",
abortPreview: "Cancelar prévia e interagir",
agentMessage:
"Aplique as edições visuais de estilo pendentes à origem.",
sentToast: "Edições de estilo enviadas ao agente Design",
verifiedToast: "Origem e estrutura do runtime verificadas",
conflictToast:
"O runtime recarregado não corresponde à edição estrutural pendente. A prévia ainda pode ser desfeita; resolva o conflito e tente novamente.",
sourceCheckFailedToast:
"Não foi possível verificar os arquivos de origem conectados. A prévia foi mantida para tentar novamente ou desfazer.",
copiedToast: "Prompt de estilo copiado",
abortedToast: "Prévia pendente descartada",
interactBlocked:
"Aplique ou cancele as edições ao vivo pendentes antes de mudar para Interagir.",
leaveTitle: "Aplicar estilos antes de sair?",
leaveDescriptionOne:
"Você tem {{count}} edição visual de estilo pendente na prévia ao vivo. Sair agora descartará essa alteração de estilo não aplicada.",
leaveDescriptionOther:
"Você tem {{count}} edições visuais de estilo pendentes na prévia ao vivo. Sair agora descartará essas alterações de estilo não aplicadas.",
stay: "Ficar aqui",
leave: "Sair sem aplicar",
},
},
},
"hi-IN": {
designEditor: {
pendingVisualStyles: {
applyAria: "लंबित visual style edits लागू करें",
applyButton: "Styles लागू करें",
previewLabel: "लंबित visual preview",
applyDesignUpdates: "डिज़ाइन अपडेट लागू करें",
verifying: "Source और runtime सत्यापित हो रहे हैं…",
retryWithAgent: "Source verification फिर करें",
copyPrompt: "Prompt अपने agent को कॉपी करें",
abortPreview: "Preview रोकें और interact करें",
agentMessage: "लंबित visual style edits को source पर लागू करें।",
sentToast: "Style edits Design agent को भेजे गए",
verifiedToast: "Source और runtime structure सत्यापित हैं",
conflictToast:
"Reload हुआ runtime pending structure edit से मेल नहीं खाता। Preview अभी भी undo किया जा सकता है; source conflict हल करके फिर कोशिश करें।",
sourceCheckFailedToast:
"Connected source files सत्यापित नहीं हो सके। Retry या undo के लिए preview रखा गया है।",
copiedToast: "Style prompt कॉपी हुआ",
abortedToast: "लंबित preview हटा दिया गया",
interactBlocked: "Interact पर जाने से पहले लंबित live edits लागू करें या रोकें।",
leaveTitle: "छोड़ने से पहले styles लागू करें?",
leaveDescriptionOne:
"Live preview में {{count}} लंबित visual style edit है। अभी छोड़ने पर वह unapplied style change हट जाएगा।",
leaveDescriptionOther:
"Live preview में {{count}} लंबित visual style edits हैं। अभी छोड़ने पर वे unapplied style changes हट जाएंगे।",
stay: "यहीं रहें",
leave: "बिना लागू किए छोड़ें",
},
},
},
"ar-SA": {
designEditor: {
pendingVisualStyles: {
applyAria: "تطبيق تعديلات النمط المرئية المعلقة",
applyButton: "تطبيق الأنماط",
previewLabel: "معاينة مرئية معلقة",
applyDesignUpdates: "تطبيق تحديثات التصميم",
verifying: "جارٍ التحقق من المصدر ووقت التشغيل…",
retryWithAgent: "إعادة التحقق من المصدر",
copyPrompt: "نسخ الموجه إلى وكيلك",
abortPreview: "إلغاء المعاينة والتفاعل",
agentMessage: "طبّق تعديلات النمط المرئية المعلقة على المصدر.",
sentToast: "تم إرسال تعديلات النمط إلى وكيل Design",
verifiedToast: "تم التحقق من المصدر وبنية وقت التشغيل",
conflictToast:
"لا يطابق وقت التشغيل المعاد تحميله تعديل البنية المعلق. لا تزال المعاينة قابلة للتراجع؛ عالج تعارض المصدر ثم أعد المحاولة.",
sourceCheckFailedToast:
"تعذر التحقق من ملفات المصدر المتصلة. تم الاحتفاظ بالمعاينة لتتمكن من إعادة المحاولة أو التراجع.",
copiedToast: "تم نسخ موجه النمط",
abortedToast: "تم تجاهل المعاينة المعلقة",
interactBlocked:
"طبّق التعديلات المباشرة المعلقة أو ألغها قبل الانتقال إلى التفاعل.",
leaveTitle: "تطبيق الأنماط قبل المغادرة؟",
leaveDescriptionOne:
"لديك {{count}} تعديل نمط مرئي معلق في المعاينة المباشرة. ستؤدي المغادرة الآن إلى تجاهل تغيير النمط غير المطبق.",
leaveDescriptionOther:
"لديك {{count}} تعديلات نمط مرئية معلقة في المعاينة المباشرة. ستؤدي المغادرة الآن إلى تجاهل تغييرات النمط غير المطبقة.",
stay: "البقاء هنا",
leave: "المغادرة دون تطبيق",
},
},
},
} satisfies Record, PartialMessages>;
const designAddLocalhostScreenOverrides = {
"zh-TW": {
designEditor: {
addLocalhostScreen: {
title: "從您的應用程式新增畫面",
description: "選擇一個路由做為新畫面,或輸入路徑。",
searchPlaceholder: "搜尋路由…",
noRoutes: "找不到符合的路由",
useCustomPath: "新增「{{path}}」",
viewportDesktop: "桌面版",
viewportMobile: "行動版",
added: "已新增畫面",
addFailed: "無法新增畫面",
},
},
},
"zh-CN": {
designEditor: {
addLocalhostScreen: {
title: "从您的应用添加屏幕",
description: "选择一个路由作为新屏幕,或输入路径。",
searchPlaceholder: "搜索路由…",
noRoutes: "未找到匹配的路由",
useCustomPath: "添加“{{path}}”",
viewportDesktop: "桌面版",
viewportMobile: "移动版",
added: "已添加屏幕",
addFailed: "无法添加屏幕",
},
},
},
"es-ES": {
designEditor: {
addLocalhostScreen: {
title: "Añadir una pantalla desde tu app",
description:
"Elige una ruta para añadirla como nuevo marco, o escribe una ruta.",
searchPlaceholder: "Buscar rutas…",
noRoutes: "No hay rutas que coincidan",
useCustomPath: 'Añadir "{{path}}"',
viewportDesktop: "Escritorio",
viewportMobile: "Móvil",
added: "Pantalla añadida",
addFailed: "No se pudo añadir la pantalla",
},
},
},
"fr-FR": {
designEditor: {
addLocalhostScreen: {
title: "Ajouter un écran depuis votre application",
description:
"Choisissez une route à ajouter comme nouveau cadre, ou saisissez un chemin.",
searchPlaceholder: "Rechercher des routes…",
noRoutes: "Aucune route correspondante",
useCustomPath: "Ajouter « {{path}} »",
viewportDesktop: "Bureau",
viewportMobile: "Mobile",
added: "Écran ajouté",
addFailed: "Impossible d’ajouter l’écran",
},
},
},
"de-DE": {
designEditor: {
addLocalhostScreen: {
title: "Einen Screen aus deiner App hinzufügen",
description:
"Wähle eine Route als neuen Rahmen aus oder gib einen Pfad ein.",
searchPlaceholder: "Routen durchsuchen…",
noRoutes: "Keine passenden Routen",
useCustomPath: "„{{path}}“ hinzufügen",
viewportDesktop: "Desktop",
viewportMobile: "Mobil",
added: "Screen hinzugefügt",
addFailed: "Screen konnte nicht hinzugefügt werden",
},
},
},
"ja-JP": {
designEditor: {
addLocalhostScreen: {
title: "アプリから画面を追加",
description:
"新しいフレームとして追加するルートを選ぶか、パスを入力してください。",
searchPlaceholder: "ルートを検索…",
noRoutes: "一致するルートがありません",
useCustomPath: "「{{path}}」を追加",
viewportDesktop: "デスクトップ",
viewportMobile: "モバイル",
added: "画面を追加しました",
addFailed: "画面を追加できませんでした",
},
},
},
"ko-KR": {
designEditor: {
addLocalhostScreen: {
title: "앱에서 화면 추가",
description:
"새 프레임으로 추가할 경로를 선택하거나 경로를 입력하세요.",
searchPlaceholder: "경로 검색…",
noRoutes: "일치하는 경로가 없습니다",
useCustomPath: '"{{path}}" 추가',
viewportDesktop: "데스크톱",
viewportMobile: "모바일",
added: "화면이 추가되었습니다",
addFailed: "화면을 추가할 수 없습니다",
},
},
},
"pt-BR": {
designEditor: {
addLocalhostScreen: {
title: "Adicionar uma tela do seu app",
description:
"Escolha uma rota para adicionar como novo quadro, ou digite um caminho.",
searchPlaceholder: "Buscar rotas…",
noRoutes: "Nenhuma rota encontrada",
useCustomPath: 'Adicionar "{{path}}"',
viewportDesktop: "Desktop",
viewportMobile: "Celular",
added: "Tela adicionada",
addFailed: "Não foi possível adicionar a tela",
},
},
},
"hi-IN": {
designEditor: {
addLocalhostScreen: {
title: "अपनी app से screen जोड़ें",
description: "नए frame के रूप में जोड़ने के लिए एक route चुनें, या path टाइप करें।",
searchPlaceholder: "Routes खोजें…",
noRoutes: "कोई मेल खाता route नहीं मिला",
useCustomPath: '"{{path}}" जोड़ें',
viewportDesktop: "Desktop",
viewportMobile: "Mobile",
added: "Screen जोड़ी गई",
addFailed: "Screen नहीं जोड़ी जा सकी",
},
},
},
"ar-SA": {
designEditor: {
addLocalhostScreen: {
title: "إضافة شاشة من تطبيقك",
description: "اختر مسارًا لإضافته كإطار جديد، أو أدخل مسارًا.",
searchPlaceholder: "البحث في المسارات…",
noRoutes: "لا توجد مسارات مطابقة",
useCustomPath: 'إضافة "{{path}}"',
viewportDesktop: "سطح المكتب",
viewportMobile: "الجوال",
added: "تمت إضافة الشاشة",
addFailed: "تعذرت إضافة الشاشة",
},
},
},
} satisfies Record, PartialMessages>;
const designLeftRailOverrides = {
"zh-TW": {
designEditor: {
applyToSource: "套用至來源",
applyToSourcePath: "套用至來源({{path}})",
applyToSourceUnavailableCompiled:
"編譯後的框架路由(React/TS 元件)尚不支援寫回來源。請改為請代理編輯來源檔案。",
writingToSource: "寫入中…",
appliedToSource: "已儲存至 {{path}}",
applyToSourceConflict:
"{{path}} 自開啟後已在磁碟上變更。請重新載入畫面後再試一次。",
applyToSourceError: "無法儲存至來源:{{message}}",
leftRail: {
file: "檔案",
agent: "代理",
assets: "資源",
tools: "工具",
tokens: "權杖",
label: "設計工作區",
},
},
},
"zh-CN": {
designEditor: {
applyToSource: "应用到源文件",
applyToSourcePath: "应用到源文件({{path}})",
applyToSourceUnavailableCompiled:
"编译后的框架路由(React/TS 组件)暂不支持写回源文件。请让代理直接编辑源文件。",
writingToSource: "正在写入…",
appliedToSource: "已保存到 {{path}}",
applyToSourceConflict:
"{{path}} 自打开后已在磁盘上发生变化。请重新加载页面后重试。",
applyToSourceError: "无法保存到源文件:{{message}}",
leftRail: {
file: "文件",
agent: "代理",
assets: "资源",
import: "导入",
tools: "工具",
tokens: "设计令牌",
label: "设计工作区",
},
},
},
"es-ES": {
designEditor: {
applyToSource: "Aplicar al código fuente",
applyToSourcePath: "Aplicar al código fuente ({{path}})",
applyToSourceUnavailableCompiled:
"La escritura al código fuente aún no está disponible para rutas del framework compiladas (componentes React/TS). Pide al agente que edite el archivo fuente en su lugar.",
writingToSource: "Escribiendo…",
appliedToSource: "Guardado en {{path}}",
applyToSourceConflict:
"{{path}} cambió en el disco desde que se abrió. Recarga la pantalla e inténtalo de nuevo.",
applyToSourceError: "No se pudo guardar en el código fuente: {{message}}",
leftRail: {
file: "Archivo",
agent: "Agente",
assets: "Recursos",
import: "Importar",
tools: "Herramientas",
tokens: "Tokens de diseño",
label: "Espacio de trabajo de diseño",
},
},
},
"fr-FR": {
designEditor: {
applyToSource: "Appliquer à la source",
applyToSourcePath: "Appliquer à la source ({{path}})",
applyToSourceUnavailableCompiled:
"La réécriture vers la source n'est pas encore disponible pour les routes de framework compilées (composants React/TS). Demandez à l'agent de modifier directement le fichier source.",
writingToSource: "Écriture…",
appliedToSource: "Enregistré dans {{path}}",
applyToSourceConflict:
"{{path}} a été modifié sur le disque depuis son ouverture. Rechargez l'écran et réessayez.",
applyToSourceError:
"Impossible d'enregistrer dans la source : {{message}}",
leftRail: {
file: "Fichier",
agent: "Agent",
assets: "Ressources",
import: "Importer",
tools: "Outils",
tokens: "Jetons",
label: "Espace de travail Design",
},
},
},
"de-DE": {
designEditor: {
applyToSource: "Auf Quelle anwenden",
applyToSourcePath: "Auf Quelle anwenden ({{path}})",
applyToSourceUnavailableCompiled:
"Das Zurückschreiben in die Quelle ist für kompilierte Framework-Routen (React/TS-Komponenten) noch nicht verfügbar. Bitte den Agenten, die Quelldatei stattdessen zu bearbeiten.",
writingToSource: "Wird geschrieben…",
appliedToSource: "In {{path}} gespeichert",
applyToSourceConflict:
"{{path}} wurde seit dem Öffnen auf der Festplatte geändert. Bildschirm neu laden und erneut versuchen.",
applyToSourceError: "Speichern in Quelle fehlgeschlagen: {{message}}",
leftRail: {
file: "Datei",
agent: "Agent",
assets: "Ressourcen",
import: "Import",
tools: "Werkzeuge",
tokens: "Design-Tokens",
label: "Design-Arbeitsbereich",
},
},
},
"ja-JP": {
designEditor: {
applyToSource: "ソースに適用",
applyToSourcePath: "ソースに適用({{path}})",
applyToSourceUnavailableCompiled:
"コンパイル済みのフレームワークルート(React/TSコンポーネント)では、ソースへの書き戻しはまだ利用できません。エージェントにソースファイルを直接編集するよう依頼してください。",
writingToSource: "書き込み中…",
appliedToSource: "{{path}} に保存しました",
applyToSourceConflict:
"{{path}} は開いた後にディスク上で変更されています。画面を再読み込みしてもう一度お試しください。",
applyToSourceError: "ソースへの保存に失敗しました: {{message}}",
leftRail: {
file: "ファイル",
agent: "エージェント",
assets: "アセット",
import: "インポート",
tools: "ツール",
tokens: "トークン",
label: "デザインワークスペース",
},
},
},
"ko-KR": {
designEditor: {
applyToSource: "소스에 적용",
applyToSourcePath: "소스에 적용({{path}})",
applyToSourceUnavailableCompiled:
"컴파일된 프레임워크 라우트(React/TS 컴포넌트)에는 아직 소스로 다시 쓰기 기능을 사용할 수 없습니다. 에이전트에게 소스 파일을 직접 편집하도록 요청하세요.",
writingToSource: "쓰는 중…",
appliedToSource: "{{path}}에 저장됨",
applyToSourceConflict:
"{{path}}이(가) 열린 이후 디스크에서 변경되었습니다. 화면을 새로고침한 후 다시 시도하세요.",
applyToSourceError: "소스에 저장하지 못했습니다: {{message}}",
leftRail: {
file: "파일",
agent: "에이전트",
assets: "에셋",
import: "가져오기",
tools: "도구",
tokens: "토큰",
label: "디자인 작업공간",
},
},
},
"pt-BR": {
designEditor: {
applyToSource: "Aplicar à origem",
applyToSourcePath: "Aplicar à origem ({{path}})",
applyToSourceUnavailableCompiled:
"A gravação de volta na origem ainda não está disponível para rotas de framework compiladas (componentes React/TS). Peça ao agente para editar o arquivo de origem em vez disso.",
writingToSource: "Gravando…",
appliedToSource: "Salvo em {{path}}",
applyToSourceConflict:
"{{path}} foi alterado no disco desde que foi aberto. Recarregue a tela e tente novamente.",
applyToSourceError: "Não foi possível salvar na origem: {{message}}",
leftRail: {
file: "Arquivo",
agent: "Agente",
assets: "Recursos",
import: "Importar",
tools: "Ferramentas",
tokens: "Tokens de design",
label: "Área de trabalho de design",
},
},
},
"hi-IN": {
designEditor: {
applyToSource: "स्रोत पर लागू करें",
applyToSourcePath: "स्रोत पर लागू करें ({{path}})",
applyToSourceUnavailableCompiled:
"कंपाइल की गई फ़्रेमवर्क रूट्स (React/TS कॉम्पोनेंट) के लिए स्रोत में वापस लिखना अभी उपलब्ध नहीं है। इसके बजाय एजेंट से स्रोत फ़ाइल संपादित करने को कहें।",
writingToSource: "लिखा जा रहा है…",
appliedToSource: "{{path}} में सहेजा गया",
applyToSourceConflict:
"{{path}} इसके खुलने के बाद डिस्क पर बदल गई है। स्क्रीन को रीलोड करें और फिर से प्रयास करें।",
applyToSourceError: "स्रोत में सहेजा नहीं जा सका: {{message}}",
leftRail: {
file: "फ़ाइल",
agent: "एजेंट",
assets: "एसेट",
import: "आयात",
tools: "उपकरण",
tokens: "टोकन",
label: "डिज़ाइन कार्यक्षेत्र",
},
},
},
"ar-SA": {
designEditor: {
applyToSource: "تطبيق على المصدر",
applyToSourcePath: "تطبيق على المصدر ({{path}})",
applyToSourceUnavailableCompiled:
"الكتابة إلى المصدر غير متاحة بعد لمسارات الإطار المُجمَّعة (مكوّنات React/TS). يُرجى مطالبة الوكيل بتعديل ملف المصدر بدلاً من ذلك.",
writingToSource: "جارٍ الكتابة…",
appliedToSource: "تم الحفظ في {{path}}",
applyToSourceConflict:
"تم تغيير {{path}} على القرص منذ فتحه. أعد تحميل الشاشة وحاول مرة أخرى.",
applyToSourceError: "تعذّر الحفظ في المصدر: {{message}}",
leftRail: {
file: "ملف",
agent: "الوكيل",
assets: "الأصول",
import: "استيراد",
tools: "الأدوات",
tokens: "الرموز",
label: "مساحة عمل التصميم",
},
},
},
} satisfies Record, PartialMessages>;
const designTokenImportOverrides = {
"zh-TW": {
designEditor: {
tokens: {
import: "匯入權杖",
importTitle: "匯入權杖",
importHint:
"先使用 design.md、CSS、主題檔案或目前設計,再手動新增權杖。",
files: "檔案",
folder: "資料夾",
current: "目前",
importPasted: "匯入貼上的權杖",
importedCount: "已匯入 {{count}} 個權杖",
},
},
},
"zh-CN": {
designEditor: {
tokens: {
import: "导入设计令牌",
importTitle: "导入设计令牌",
importHint:
"先使用 design.md、CSS、主题文件或当前设计,再手动添加令牌。",
files: "文件",
folder: "文件夹",
current: "当前",
importPasted: "导入粘贴的令牌",
importedCount: "已导入 {{count}} 个令牌",
},
},
},
"es-ES": {
designEditor: {
tokens: {
import: "Importar tokens",
importTitle: "Importar tokens",
importHint:
"Usa design.md, CSS, archivos de tema o el diseño actual antes de añadir tokens a mano.",
files: "Archivos",
folder: "Carpeta",
current: "Actual",
importPasted: "Importar tokens pegados",
importedCount: "{{count}} tokens importados",
},
},
},
"fr-FR": {
designEditor: {
tokens: {
import: "Importer des jetons",
importTitle: "Importer des jetons",
importHint:
"Utilisez design.md, CSS, les fichiers de thème ou le design actuel avant d'ajouter des jetons à la main.",
files: "Fichiers",
folder: "Dossier",
current: "Actuel",
importPasted: "Importer les jetons collés",
importedCount: "{{count}} jetons importés",
},
},
},
"de-DE": {
designEditor: {
tokens: {
import: "Tokens importieren",
importTitle: "Tokens importieren",
importHint:
"Nutze zuerst design.md, CSS, Theme-Dateien oder das aktuelle Design, bevor du Tokens manuell hinzufügst.",
files: "Dateien",
folder: "Ordner",
current: "Aktuell",
importPasted: "Eingefügte Tokens importieren",
importedCount: "{{count}} Tokens importiert",
},
},
},
"ja-JP": {
designEditor: {
tokens: {
import: "トークンをインポート",
importTitle: "トークンをインポート",
importHint:
"手入力の前に design.md、CSS、テーマファイル、または現在のデザインを使います。",
files: "ファイル",
folder: "フォルダー",
current: "現在",
importPasted: "貼り付けたトークンをインポート",
importedCount: "{{count}} 個のトークンをインポートしました",
},
},
},
"ko-KR": {
designEditor: {
tokens: {
import: "토큰 가져오기",
importTitle: "토큰 가져오기",
importHint:
"수동으로 추가하기 전에 design.md, CSS, 테마 파일 또는 현재 디자인을 사용하세요.",
files: "파일",
folder: "폴더",
current: "현재",
importPasted: "붙여넣은 토큰 가져오기",
importedCount: "{{count}}개 토큰을 가져왔습니다",
},
},
},
"pt-BR": {
designEditor: {
tokens: {
import: "Importar tokens",
importTitle: "Importar tokens",
importHint:
"Use design.md, CSS, arquivos de tema ou o design atual antes de adicionar tokens manualmente.",
files: "Arquivos",
folder: "Pasta",
current: "Atual",
importPasted: "Importar tokens colados",
importedCount: "{{count}} tokens importados",
},
},
},
"hi-IN": {
designEditor: {
tokens: {
import: "टोकन इम्पोर्ट करें",
importTitle: "टोकन इम्पोर्ट करें",
importHint:
"हाथ से जोड़ने से पहले design.md, CSS, theme files या current design इस्तेमाल करें।",
files: "फाइलें",
folder: "फोल्डर",
current: "मौजूदा",
importPasted: "पेस्ट किए गए टोकन इम्पोर्ट करें",
importedCount: "{{count}} टोकन इम्पोर्ट हुए",
},
},
},
"ar-SA": {
designEditor: {
tokens: {
import: "استيراد الرموز",
importTitle: "استيراد الرموز",
importHint:
"استخدم design.md أو CSS أو ملفات السمة أو التصميم الحالي قبل إضافة الرموز يدويا.",
files: "ملفات",
folder: "مجلد",
current: "الحالي",
importPasted: "استيراد الرموز الملصقة",
importedCount: "تم استيراد {{count}} رمزا",
},
},
},
} satisfies Record, PartialMessages>;
const designImportOverrides = {
"zh-TW": {
designEditor: {
import: {
title: "匯入",
description: "將 Figma 剪貼簿 HTML 或獨立 HTML 帶入為 Design 螢幕。",
figmaPasteTitle: "從 Figma 貼上",
figmaPasteDescription:
"在 Figma 複製畫框或圖層,然後貼到 Design 畫布。Design 會匯入可見的剪貼簿 HTML。",
figmaPasteTarget: "貼到畫布",
figmaPasteApiKeyHint: "連結您的 Figma 存取權杖以取得精確的節點匯入。",
figmaPasteMatchGuidance:
"無法比對到特定的 Figma 節點。請改貼上畫框連結以進行精確匯入。",
figmaPasteRestLabel: "透過 Figma API 匯入",
figmaPasteHtmlLabel: "從剪貼簿預覽匯入",
figmaPasteLocalKiwiLabel: "已在未登入狀態下匯入 — 僅含幾何與文字",
figmaPasteImagesNeedToken:
"{{count}} 個圖片{{plural}}需要 Figma 存取權才能載入。",
figmaHydrationDialogTitle: "連結 Figma 以載入圖片",
figmaHydrationDialogDescription:
"輸入您的 Figma 存取權杖,以載入已匯入螢幕{{screensPlural}}中 {{count}} 個缺少的圖片{{plural}}。",
figmaHydrationConnectAndLoad: "連結並載入圖片",
figmaHydrationSuccess: "圖片載入成功",
figmaHydrationSuccessDescription:
"已從 Figma 填入 {{count}} 個圖片{{plural}}。",
figUploadTitle: "上傳 .fig",
figUploadDescription:
"實驗性功能:Figma 的 .fig 格式為專有格式且可能變更。支援的圖層會轉為可編輯螢幕,部分功能可能不同。上限為 50 MB。",
chooseFigFile: "選擇 .fig 檔案",
figUploadUploading: "上傳中 {{progress}}%",
figUploadProcessing: "轉換中…",
htmlTitle: "匯入 HTML",
htmlDescription:
"貼上或上傳獨立 HTML。Design 會將其儲存為新螢幕,不會注入到此編輯器 UI。",
htmlPlaceholder: "在此貼上獨立 HTML...",
importHtml: "匯入 HTML",
chooseHtmlFile: "選擇 HTML 檔案",
githubTitle: "GitHub",
githubDescription: "即將推出:直接從儲存庫匯入螢幕和元件。",
localTitle: "本機 app",
localDescription: "使用 /visual-edit 連接任何執行中的本機 app。",
visualEditGuidance:
"安裝 /visual-edit skill,啟動任意本機 app,然後在該 app repo 中執行橋接命令,讓代理新增 URL 螢幕。",
comingSoon: "即將推出",
warningsToast: "匯入完成但有警告",
figmaImageFallbackWarning:
"圖像備援:{{count}}。外觀會保留,但這些圖層無法完整編輯。",
figmaApproximationWarning:
"近似圖層:{{count}}。HTML/CSS 無法精確呈現所有 Figma 屬性。",
figmaSuccess: "已匯入 Figma 貼上內容",
htmlSuccess: "已匯入 HTML",
uploadSuccess: "已匯入檔案",
lastImport: "上次匯入",
errors: {
notHtml: "請貼上或選擇有效的 HTML 以匯入。",
importFailed: "匯入失敗",
figmaPasteFailed: "Figma 貼上匯入失敗",
uploadFailed: "檔案上傳失敗",
invalidFigFile: "請選擇副檔名為 .fig 的檔案。",
figFileTooLarge: ".fig 檔案必須為 50 MB 或更小。",
},
},
},
},
"zh-CN": {
designEditor: {
import: {
title: "导入",
description: "将 Figma 剪贴板 HTML 或独立 HTML 导入为 Design 屏幕。",
figmaPasteTitle: "从 Figma 粘贴",
figmaPasteDescription:
"在 Figma 中复制画框或图层,然后粘贴到 Design 画布。Design 会导入可见的剪贴板 HTML。",
figmaPasteTarget: "粘贴到画布",
figmaPasteApiKeyHint: "连接您的 Figma 访问令牌以获得精确的节点导入。",
figmaPasteMatchGuidance:
"无法匹配到特定的 Figma 节点。请改为粘贴画框链接以进行精确导入。",
figmaPasteRestLabel: "通过 Figma API 导入",
figmaPasteHtmlLabel: "从剪贴板预览导入",
figmaPasteLocalKiwiLabel: "已在未登录状态下导入 — 仅包含几何与文字",
figmaPasteImagesNeedToken:
"{{count}} 张图片{{plural}}需要 Figma 访问权限才能加载。",
figmaHydrationDialogTitle: "连接 Figma 以加载图片",
figmaHydrationDialogDescription:
"输入您的 Figma 访问令牌,以加载已导入屏幕{{screensPlural}}中缺少的 {{count}} 张图片{{plural}}。",
figmaHydrationConnectAndLoad: "连接并加载图片",
figmaHydrationSuccess: "图片加载成功",
figmaHydrationSuccessDescription:
"已从 Figma 填入 {{count}} 张图片{{plural}}。",
figUploadTitle: "上传 .fig",
figUploadDescription:
"实验性功能:Figma 的 .fig 格式为专有格式且可能变化。支持的图层会转换为可编辑屏幕,部分功能可能有所不同。最大 50 MB。",
chooseFigFile: "选择 .fig 文件",
figUploadUploading: "正在上传 {{progress}}%",
figUploadProcessing: "正在转换…",
htmlTitle: "导入 HTML",
htmlDescription:
"粘贴或上传独立 HTML。Design 会将其保存为新屏幕,不会注入到此编辑器界面。",
htmlPlaceholder: "在此粘贴独立 HTML...",
importHtml: "导入 HTML",
chooseHtmlFile: "选择 HTML 文件",
githubTitle: "GitHub",
githubDescription: "即将推出:直接从仓库导入屏幕和组件。",
localTitle: "本地 app",
localDescription: "使用 /visual-edit 连接任何正在运行的本地 app。",
visualEditGuidance:
"安装 /visual-edit skill,启动任意本地 app,然后在该 app repo 中运行桥接命令,让代理添加 URL 屏幕。",
comingSoon: "即将推出",
warningsToast: "导入完成但有警告",
figmaImageFallbackWarning:
"图像回退:{{count}}。外观会保留,但这些图层无法完全编辑。",
figmaApproximationWarning:
"近似图层:{{count}}。HTML/CSS 无法精确表示所有 Figma 属性。",
figmaSuccess: "已导入 Figma 粘贴内容",
htmlSuccess: "已导入 HTML",
uploadSuccess: "已导入文件",
lastImport: "上次导入",
errors: {
notHtml: "请粘贴或选择有效的 HTML 进行导入。",
importFailed: "导入失败",
figmaPasteFailed: "Figma 粘贴导入失败",
uploadFailed: "文件上传失败",
invalidFigFile: "请选择以 .fig 结尾的文件。",
figFileTooLarge: ".fig 文件必须为 50 MB 或更小。",
},
},
},
},
"es-ES": {
designEditor: {
import: {
title: "Importar",
description:
"Trae HTML del portapapeles de Figma o HTML independiente como pantallas de Design.",
figmaPasteTitle: "Pegar desde Figma",
figmaPasteDescription:
"Copia un marco o capa en Figma y pégalo en el lienzo de Design. Design importa el HTML visible del portapapeles.",
figmaPasteTarget: "Pega en el lienzo",
figmaPasteApiKeyHint:
"Conecta tu token de acceso de Figma para importaciones exactas de nodos.",
figmaPasteMatchGuidance:
"No se pudo hacer coincidir con nodos específicos de Figma. Pega un enlace de marco para una importación exacta.",
figmaPasteRestLabel: "Importado mediante la API de Figma",
figmaPasteHtmlLabel: "Importado desde la vista previa del portapapeles",
figmaPasteLocalKiwiLabel:
"Importado sin token — solo geometría y texto",
figmaPasteImagesNeedToken:
"{{count}} imagen{{plural}} necesita{{plural}} acceso a Figma para cargarse.",
figmaHydrationDialogTitle: "Conectar Figma para cargar imágenes",
figmaHydrationDialogDescription:
"Introduce tu token de acceso de Figma para cargar {{count}} imagen{{plural}} faltante{{plural}} en la pantalla{{screensPlural}} importada{{screensPlural}}.",
figmaHydrationConnectAndLoad: "Conectar y cargar imágenes",
figmaHydrationSuccess: "Imágenes cargadas correctamente",
figmaHydrationSuccessDescription:
"{{count}} imagen{{plural}} rellenada{{plural}} desde Figma.",
figUploadTitle: "Subir .fig",
figUploadDescription:
"Experimental: el formato .fig de Figma es propietario y puede cambiar. Las capas compatibles se convierten en pantallas editables; algunas funciones pueden variar. Máximo 50 MB.",
chooseFigFile: "Elegir archivo .fig",
figUploadUploading: "Subiendo {{progress}}%",
figUploadProcessing: "Convirtiendo…",
htmlTitle: "Importar HTML",
htmlDescription:
"Pega o sube HTML independiente. Design lo guarda como una pantalla nueva sin inyectarlo en esta interfaz.",
htmlPlaceholder: "Pega HTML independiente aquí...",
importHtml: "Importar HTML",
chooseHtmlFile: "Elegir archivo HTML",
githubTitle: "GitHub",
githubDescription:
"Próximamente: importar pantallas y componentes directamente desde un repositorio.",
localTitle: "App local",
localDescription:
"Conecta cualquier app local en ejecución con /visual-edit.",
visualEditGuidance:
"Instala la skill /visual-edit, inicia cualquier app local y ejecuta el comando de puente desde ese repo para que tu agente añada pantallas con URL.",
comingSoon: "Próximamente",
warningsToast: "La importación terminó con advertencias",
figmaImageFallbackWarning:
"Alternativas de imagen: {{count}}. Se conserva la apariencia, pero estas capas no son totalmente editables.",
figmaApproximationWarning:
"Capas aproximadas: {{count}}. HTML/CSS no puede representar todas las propiedades de Figma con exactitud.",
figmaSuccess: "Pegado de Figma importado",
htmlSuccess: "HTML importado",
uploadSuccess: "Archivo importado",
lastImport: "Última importación",
errors: {
notHtml: "Pega o elige HTML válido para importar.",
importFailed: "Error al importar",
figmaPasteFailed: "Error al importar el pegado de Figma",
uploadFailed: "Error al subir el archivo",
invalidFigFile: "Elige un archivo que termine en .fig.",
figFileTooLarge: "Los archivos .fig deben tener 50 MB o menos.",
},
},
},
},
"fr-FR": {
designEditor: {
import: {
title: "Importer",
description:
"Importez le HTML du presse-papiers Figma ou du HTML autonome comme écrans Design.",
figmaPasteTitle: "Coller depuis Figma",
figmaPasteDescription:
"Copiez un frame ou un calque dans Figma, puis collez-le dans le canevas Design. Design importe le HTML visible du presse-papiers.",
figmaPasteTarget: "Collez dans le canevas",
figmaPasteApiKeyHint:
"Connectez votre jeton d'accès Figma pour des imports de nœuds exacts.",
figmaPasteMatchGuidance:
"Impossible de faire correspondre à des nœuds Figma précis. Collez un lien de cadre pour un import exact.",
figmaPasteRestLabel: "Importé via l'API Figma",
figmaPasteHtmlLabel: "Importé depuis l'aperçu du presse-papiers",
figmaPasteLocalKiwiLabel:
"Importé sans token — géométrie et texte uniquement",
figmaPasteImagesNeedToken:
"{{count}} image{{plural}} nécessite{{plural}} un accès Figma pour être chargée{{plural}}.",
figmaHydrationDialogTitle: "Connecter Figma pour charger les images",
figmaHydrationDialogDescription:
"Saisissez votre token d'accès Figma pour charger {{count}} image{{plural}} manquante{{plural}} dans l'écran{{screensPlural}} importé{{screensPlural}}.",
figmaHydrationConnectAndLoad: "Connecter et charger les images",
figmaHydrationSuccess: "Images chargées avec succès",
figmaHydrationSuccessDescription:
"{{count}} image{{plural}} remplie{{plural}} depuis Figma.",
figUploadTitle: "Téléverser .fig",
figUploadDescription:
"Expérimental : le format .fig de Figma est propriétaire et peut évoluer. Les calques pris en charge deviennent des écrans modifiables ; certaines fonctions peuvent différer. Maximum 50 Mo.",
chooseFigFile: "Choisir un fichier .fig",
figUploadUploading: "Téléversement {{progress}} %",
figUploadProcessing: "Conversion…",
htmlTitle: "Importer HTML",
htmlDescription:
"Collez ou téléversez du HTML autonome. Design l’enregistre comme nouvel écran sans l’injecter dans cette interface.",
htmlPlaceholder: "Collez le HTML autonome ici...",
importHtml: "Importer HTML",
chooseHtmlFile: "Choisir un fichier HTML",
githubTitle: "GitHub",
githubDescription:
"Bientôt : importer des écrans et composants directement depuis un dépôt.",
localTitle: "App locale",
localDescription:
"Connectez n’importe quelle app locale en cours d’exécution avec /visual-edit.",
visualEditGuidance:
"Installez la skill /visual-edit, lancez n’importe quelle app locale, puis exécutez la commande de pont depuis ce dépôt pour que votre agent ajoute des écrans par URL.",
comingSoon: "Bientôt",
warningsToast: "Import terminé avec avertissements",
figmaImageFallbackWarning:
"Solutions de repli par image : {{count}}. L’apparence est préservée, mais ces calques ne sont pas entièrement modifiables.",
figmaApproximationWarning:
"Calques approximés : {{count}}. HTML/CSS ne peut pas représenter exactement toutes les propriétés Figma.",
figmaSuccess: "Collage Figma importé",
htmlSuccess: "HTML importé",
uploadSuccess: "Fichier importé",
lastImport: "Dernier import",
errors: {
notHtml: "Collez ou choisissez du HTML valide à importer.",
importFailed: "Échec de l’import",
figmaPasteFailed: "Échec de l’import du collage Figma",
uploadFailed: "Échec du téléversement",
invalidFigFile: "Choisissez un fichier se terminant par .fig.",
figFileTooLarge: "Les fichiers .fig doivent faire 50 Mo ou moins.",
},
},
},
},
"de-DE": {
designEditor: {
import: {
title: "Import",
description:
"Bringe Figma-Zwischenablage-HTML oder eigenständiges HTML als Design-Bildschirme hinein.",
figmaPasteTitle: "Aus Figma einfügen",
figmaPasteDescription:
"Kopiere einen Frame oder Layer in Figma und füge ihn in die Design-Leinwand ein. Design importiert das sichtbare Zwischenablage-HTML.",
figmaPasteTarget: "In die Leinwand einfügen",
figmaPasteApiKeyHint:
"Verbinde deinen Figma-Zugriffstoken für exakte Node-Importe.",
figmaPasteMatchGuidance:
"Konnte nicht mit bestimmten Figma-Nodes abgeglichen werden. Füge stattdessen einen Frame-Link für einen exakten Import ein.",
figmaPasteRestLabel: "Über die Figma-API importiert",
figmaPasteHtmlLabel: "Aus der Zwischenablage-Vorschau importiert",
figmaPasteLocalKiwiLabel:
"Ohne Token importiert — nur Geometrie und Text",
figmaPasteImagesNeedToken:
"{{count}} Bild{{plural}} benötigt{{plural}} Figma-Zugriff zum Laden.",
figmaHydrationDialogTitle: "Figma verbinden, um Bilder zu laden",
figmaHydrationDialogDescription:
"Gib deinen Figma-Zugriffstoken ein, um {{count}} fehlendes{{plural}} Bild{{plural}} in den importierten Screen{{screensPlural}} zu laden.",
figmaHydrationConnectAndLoad: "Verbinden und Bilder laden",
figmaHydrationSuccess: "Bilder erfolgreich geladen",
figmaHydrationSuccessDescription:
"{{count}} Bild{{plural}} aus Figma ausgefüllt.",
figUploadTitle: ".fig hochladen",
figUploadDescription:
"Experimentell: Das .fig-Format von Figma ist proprietär und kann sich ändern. Unterstützte Ebenen werden zu bearbeitbaren Screens; einige Funktionen können abweichen. Maximal 50 MB.",
chooseFigFile: ".fig-Datei wählen",
figUploadUploading: "Wird hochgeladen: {{progress}} %",
figUploadProcessing: "Wird konvertiert…",
htmlTitle: "HTML importieren",
htmlDescription:
"Füge eigenständiges HTML ein oder lade es hoch. Design speichert es als neuen Bildschirm, ohne es in diese Editor-UI einzufügen.",
htmlPlaceholder: "Eigenständiges HTML hier einfügen...",
importHtml: "HTML importieren",
chooseHtmlFile: "HTML-Datei wählen",
githubTitle: "GitHub",
githubDescription:
"Demnächst: Bildschirme und Komponenten direkt aus einem Repository importieren.",
localTitle: "Lokale App",
localDescription: "Verbinde jede laufende lokale App mit /visual-edit.",
visualEditGuidance:
"Installiere die /visual-edit-Skill, starte eine lokale App und führe dann den Bridge-Befehl aus diesem App-Repo aus, damit dein Agent URL-basierte Bildschirme hinzufügen kann.",
comingSoon: "Demnächst",
warningsToast: "Import mit Warnungen abgeschlossen",
figmaImageFallbackWarning:
"Bild-Fallbacks: {{count}}. Das Erscheinungsbild bleibt erhalten, aber diese Ebenen sind nicht vollständig bearbeitbar.",
figmaApproximationWarning:
"Angenäherte Ebenen: {{count}}. HTML/CSS kann nicht jede Figma-Eigenschaft exakt darstellen.",
figmaSuccess: "Figma-Einfügung importiert",
htmlSuccess: "HTML importiert",
uploadSuccess: "Datei importiert",
lastImport: "Letzter Import",
errors: {
notHtml: "Füge gültiges HTML ein oder wähle es zum Importieren aus.",
importFailed: "Import fehlgeschlagen",
figmaPasteFailed: "Figma-Einfügeimport fehlgeschlagen",
uploadFailed: "Dateiupload fehlgeschlagen",
invalidFigFile: "Wähle eine Datei mit der Endung .fig.",
figFileTooLarge: ".fig-Dateien dürfen höchstens 50 MB groß sein.",
},
},
},
},
"ja-JP": {
designEditor: {
import: {
title: "インポート",
description:
"Figma のクリップボード HTML または単体 HTML を Design の画面として取り込みます。",
figmaPasteTitle: "Figma から貼り付け",
figmaPasteDescription:
"Figma でフレームまたはレイヤーをコピーし、Design キャンバスに貼り付けます。Design は表示されているクリップボード HTML をインポートします。",
figmaPasteTarget: "キャンバスに貼り付け",
figmaPasteApiKeyHint:
"正確なノードインポートのために Figma アクセストークンを接続してください。",
figmaPasteMatchGuidance:
"特定の Figma ノードと一致しませんでした。正確にインポートするにはフレームのリンクを貼り付けてください。",
figmaPasteRestLabel: "Figma API 経由でインポート",
figmaPasteHtmlLabel: "クリップボードプレビューからインポート",
figmaPasteLocalKiwiLabel:
"トークンなしでインポート — ジオメトリとテキストのみ",
figmaPasteImagesNeedToken:
"{{count}} 枚の画像{{plural}}を読み込むには Figma へのアクセスが必要です。",
figmaHydrationDialogTitle: "Figma を接続して画像を読み込む",
figmaHydrationDialogDescription:
"Figma アクセストークンを入力して、インポートされた画面{{screensPlural}}の不足している {{count}} 枚の画像{{plural}}を読み込んでください。",
figmaHydrationConnectAndLoad: "接続して画像を読み込む",
figmaHydrationSuccess: "画像の読み込みが完了しました",
figmaHydrationSuccessDescription:
"Figma から {{count}} 枚の画像{{plural}}が入力されました。",
figUploadTitle: ".fig をアップロード",
figUploadDescription:
"試験的機能:Figma の .fig 形式は独自仕様で、変更される可能性があります。対応レイヤーは編集可能な画面になりますが、一部の機能は異なる場合があります。最大 50 MB。",
chooseFigFile: ".fig ファイルを選択",
figUploadUploading: "アップロード中 {{progress}}%",
figUploadProcessing: "変換中…",
htmlTitle: "HTML をインポート",
htmlDescription:
"単体 HTML を貼り付けるかアップロードします。Design はこのエディター UI に注入せず、新しい画面として保存します。",
htmlPlaceholder: "単体 HTML をここに貼り付け...",
importHtml: "HTML をインポート",
chooseHtmlFile: "HTML ファイルを選択",
githubTitle: "GitHub",
githubDescription:
"近日対応: リポジトリから画面とコンポーネントを直接インポートします。",
localTitle: "ローカル app",
localDescription:
"/visual-edit で任意の実行中ローカル app に接続します。",
visualEditGuidance:
"/visual-edit skill をインストールし、任意のローカル app を起動してから、その app repo でブリッジコマンドを実行し、エージェントが URL ベースの画面を追加できるようにします。",
comingSoon: "近日対応",
warningsToast: "警告付きでインポートが完了しました",
figmaImageFallbackWarning:
"画像フォールバック: {{count}}。外観は保持されますが、これらのレイヤーは完全には編集できません。",
figmaApproximationWarning:
"近似レイヤー: {{count}}。HTML/CSS ではすべての Figma プロパティを正確に表現できません。",
figmaSuccess: "Figma 貼り付けをインポートしました",
htmlSuccess: "HTML をインポートしました",
uploadSuccess: "ファイルをインポートしました",
lastImport: "前回のインポート",
errors: {
notHtml: "インポートする有効な HTML を貼り付けるか選択してください。",
importFailed: "インポートに失敗しました",
figmaPasteFailed: "Figma 貼り付けのインポートに失敗しました",
uploadFailed: "ファイルのアップロードに失敗しました",
invalidFigFile: ".fig で終わるファイルを選択してください。",
figFileTooLarge: ".fig ファイルは 50 MB 以下にしてください。",
},
},
},
},
"ko-KR": {
designEditor: {
import: {
title: "가져오기",
description:
"Figma 클립보드 HTML 또는 독립 HTML을 Design 화면으로 가져옵니다.",
figmaPasteTitle: "Figma에서 붙여넣기",
figmaPasteDescription:
"Figma에서 프레임이나 레이어를 복사한 뒤 Design 캔버스에 붙여넣으세요. Design은 보이는 클립보드 HTML을 가져옵니다.",
figmaPasteTarget: "캔버스에 붙여넣기",
figmaPasteApiKeyHint:
"정확한 노드 가져오기를 위해 Figma 액세스 토큰을 연결하세요.",
figmaPasteMatchGuidance:
"특정 Figma 노드와 일치시킬 수 없습니다. 정확한 가져오기를 위해 프레임 링크를 붙여넣으세요.",
figmaPasteRestLabel: "Figma API로 가져옴",
figmaPasteHtmlLabel: "클립보드 미리보기에서 가져옴",
figmaPasteLocalKiwiLabel: "토큰 없이 가져옴 — 기하학적 구조와 텍스트만",
figmaPasteImagesNeedToken:
"{{count}}개의 이미지{{plural}}를 로드하려면 Figma 접근이 필요합니다.",
figmaHydrationDialogTitle: "Figma를 연결하여 이미지 로드",
figmaHydrationDialogDescription:
"Figma 액세스 토큰을 입력하여 가져온 화면{{screensPlural}}의 누락된 이미지 {{count}}개{{plural}}를 로드하세요.",
figmaHydrationConnectAndLoad: "연결하고 이미지 로드",
figmaHydrationSuccess: "이미지가 성공적으로 로드되었습니다",
figmaHydrationSuccessDescription:
"Figma에서 {{count}}개의 이미지{{plural}}가 채워졌습니다.",
figUploadTitle: ".fig 업로드",
figUploadDescription:
"실험적 기능: Figma의 .fig 형식은 독점 형식이며 변경될 수 있습니다. 지원되는 레이어는 편집 가능한 화면으로 변환되지만 일부 기능은 다를 수 있습니다. 최대 50MB.",
chooseFigFile: ".fig 파일 선택",
figUploadUploading: "업로드 중 {{progress}}%",
figUploadProcessing: "변환 중…",
htmlTitle: "HTML 가져오기",
htmlDescription:
"독립 HTML을 붙여넣거나 업로드하세요. Design은 이를 새 화면으로 저장하며 이 편집기 UI에 삽입하지 않습니다.",
htmlPlaceholder: "독립 HTML을 여기에 붙여넣기...",
importHtml: "HTML 가져오기",
chooseHtmlFile: "HTML 파일 선택",
githubTitle: "GitHub",
githubDescription:
"곧 제공: 저장소에서 화면과 컴포넌트를 직접 가져옵니다.",
localTitle: "로컬 app",
localDescription:
"/visual-edit로 실행 중인 모든 로컬 app을 연결합니다.",
visualEditGuidance:
"/visual-edit skill을 설치하고 로컬 app을 시작한 뒤, 해당 app repo에서 브리지 명령을 실행해 에이전트가 URL 기반 화면을 추가할 수 있게 하세요.",
comingSoon: "곧 제공",
warningsToast: "경고와 함께 가져오기가 완료되었습니다",
figmaImageFallbackWarning:
"이미지 대체: {{count}}. 모양은 유지되지만 이 레이어는 완전히 편집할 수 없습니다.",
figmaApproximationWarning:
"근사 처리된 레이어: {{count}}. HTML/CSS로 모든 Figma 속성을 정확히 표현할 수 없습니다.",
figmaSuccess: "Figma 붙여넣기를 가져왔습니다",
htmlSuccess: "HTML을 가져왔습니다",
uploadSuccess: "파일을 가져왔습니다",
lastImport: "최근 가져오기",
errors: {
notHtml: "가져올 유효한 HTML을 붙여넣거나 선택하세요.",
importFailed: "가져오기 실패",
figmaPasteFailed: "Figma 붙여넣기 가져오기 실패",
uploadFailed: "파일 업로드 실패",
invalidFigFile: ".fig로 끝나는 파일을 선택하세요.",
figFileTooLarge: ".fig 파일은 50MB 이하여야 합니다.",
},
},
},
},
"pt-BR": {
designEditor: {
import: {
title: "Importar",
description:
"Traga HTML da área de transferência do Figma ou HTML independente como telas do Design.",
figmaPasteTitle: "Colar do Figma",
figmaPasteDescription:
"Copie um frame ou camada no Figma e cole na tela do Design. O Design importa o HTML visível da área de transferência.",
figmaPasteTarget: "Cole na tela",
figmaPasteApiKeyHint:
"Conecte seu token de acesso do Figma para importações exatas de nós.",
figmaPasteMatchGuidance:
"Não foi possível corresponder a nós específicos do Figma. Cole um link do frame para uma importação exata.",
figmaPasteRestLabel: "Importado via API do Figma",
figmaPasteHtmlLabel:
"Importado da pré-visualização da área de transferência",
figmaPasteLocalKiwiLabel:
"Importado sem token — apenas geometria e texto",
figmaPasteImagesNeedToken:
"{{count}} imagem{{plural}} precisa{{plural}} de acesso ao Figma para carregar.",
figmaHydrationDialogTitle: "Conectar o Figma para carregar imagens",
figmaHydrationDialogDescription:
"Insira seu token de acesso do Figma para carregar {{count}} imagem{{plural}} ausente{{plural}} na tela{{screensPlural}} importada{{screensPlural}}.",
figmaHydrationConnectAndLoad: "Conectar e carregar imagens",
figmaHydrationSuccess: "Imagens carregadas com sucesso",
figmaHydrationSuccessDescription:
"{{count}} imagem{{plural}} preenchida{{plural}} do Figma.",
figUploadTitle: "Enviar .fig",
figUploadDescription:
"Experimental: o formato .fig do Figma é proprietário e pode mudar. As camadas compatíveis viram telas editáveis; alguns recursos podem ser diferentes. Máximo de 50 MB.",
chooseFigFile: "Escolher arquivo .fig",
figUploadUploading: "Enviando {{progress}}%",
figUploadProcessing: "Convertendo…",
htmlTitle: "Importar HTML",
htmlDescription:
"Cole ou envie HTML independente. O Design salva como uma nova tela sem injetar nesta interface.",
htmlPlaceholder: "Cole HTML independente aqui...",
importHtml: "Importar HTML",
chooseHtmlFile: "Escolher arquivo HTML",
githubTitle: "GitHub",
githubDescription:
"Em breve: importe telas e componentes diretamente de um repositório.",
localTitle: "App local",
localDescription:
"Conecte qualquer app local em execução com /visual-edit.",
visualEditGuidance:
"Instale a skill /visual-edit, inicie qualquer app local e execute o comando de ponte nesse repo para que seu agente adicione telas por URL.",
comingSoon: "Em breve",
warningsToast: "Importação concluída com avisos",
figmaImageFallbackWarning:
"Fallbacks de imagem: {{count}}. A aparência é preservada, mas essas camadas não são totalmente editáveis.",
figmaApproximationWarning:
"Camadas aproximadas: {{count}}. HTML/CSS não consegue representar exatamente todas as propriedades do Figma.",
figmaSuccess: "Colagem do Figma importada",
htmlSuccess: "HTML importado",
uploadSuccess: "Arquivo importado",
lastImport: "Última importação",
errors: {
notHtml: "Cole ou escolha HTML válido para importar.",
importFailed: "Falha ao importar",
figmaPasteFailed: "Falha ao importar colagem do Figma",
uploadFailed: "Falha no upload do arquivo",
invalidFigFile: "Escolha um arquivo que termine em .fig.",
figFileTooLarge: "Arquivos .fig devem ter 50 MB ou menos.",
},
},
},
},
"hi-IN": {
designEditor: {
import: {
title: "आयात",
description:
"Figma clipboard HTML या standalone HTML को Design screens के रूप में लाएँ।",
figmaPasteTitle: "Figma से पेस्ट करें",
figmaPasteDescription:
"Figma में frame या layer कॉपी करें, फिर Design canvas में paste करें। Design visible clipboard HTML import करता है।",
figmaPasteTarget: "canvas में paste करें",
figmaPasteApiKeyHint:
"सटीक नोड आयात के लिए अपना Figma access token कनेक्ट करें।",
figmaPasteMatchGuidance:
"विशिष्ट Figma नोड्स से मेल नहीं खाया। सटीक आयात के लिए इसके बजाय एक frame लिंक paste करें।",
figmaPasteRestLabel: "Figma API के ज़रिए आयात किया गया",
figmaPasteHtmlLabel: "क्लिपबोर्ड पूर्वावलोकन से आयात किया गया",
figmaPasteLocalKiwiLabel:
"बिना token के आयात किया गया — केवल geometry और text",
figmaPasteImagesNeedToken:
"{{count}} छवि{{plural}} को लोड करने के लिए Figma की पहुँच चाहिए।",
figmaHydrationDialogTitle: "छवियाँ लोड करने के लिए Figma जोड़ें",
figmaHydrationDialogDescription:
"आयातित screen{{screensPlural}} में {{count}} गायब छवि{{plural}} लोड करने के लिए अपना Figma access token दर्ज करें।",
figmaHydrationConnectAndLoad: "जोड़ें और छवियाँ लोड करें",
figmaHydrationSuccess: "छवियाँ सफलतापूर्वक लोड हुईं",
figmaHydrationSuccessDescription:
"Figma से {{count}} छवि{{plural}} भरी गई{{plural}}।",
figUploadTitle: ".fig अपलोड करें",
figUploadDescription:
"प्रायोगिक: Figma का .fig format proprietary है और बदल सकता है। समर्थित layers editable screens बनती हैं; कुछ features अलग हो सकते हैं। अधिकतम 50 MB।",
chooseFigFile: ".fig file चुनें",
figUploadUploading: "अपलोड हो रहा है {{progress}}%",
figUploadProcessing: "बदला जा रहा है…",
htmlTitle: "HTML आयात करें",
htmlDescription:
"Standalone HTML paste या upload करें। Design इसे नए screen के रूप में save करता है, editor UI में inject नहीं करता।",
htmlPlaceholder: "Standalone HTML यहाँ paste करें...",
importHtml: "HTML आयात करें",
chooseHtmlFile: "HTML file चुनें",
githubTitle: "GitHub",
githubDescription:
"जल्द आ रहा है: repository से screens और components सीधे import करें।",
localTitle: "स्थानीय app",
localDescription:
"/visual-edit से किसी भी चल रहे local app को connect करें।",
visualEditGuidance:
"/visual-edit skill install करें, कोई भी local app शुरू करें, फिर उस app repo से bridge command चलाएँ ताकि आपका agent URL-backed screens जोड़ सके।",
comingSoon: "जल्द आ रहा है",
warningsToast: "Import warnings के साथ पूरा हुआ",
figmaImageFallbackWarning:
"इमेज फ़ॉलबैक: {{count}}। दिखावट सुरक्षित रहती है, लेकिन इन लेयर को पूरी तरह संपादित नहीं किया जा सकता।",
figmaApproximationWarning:
"अनुमानित लेयर: {{count}}। HTML/CSS हर Figma प्रॉपर्टी को ठीक-ठीक प्रस्तुत नहीं कर सकता।",
figmaSuccess: "Figma paste import हो गया",
htmlSuccess: "HTML import हो गया",
uploadSuccess: "File import हो गई",
lastImport: "पिछला import",
errors: {
notHtml: "Import करने के लिए valid HTML paste करें या चुनें।",
importFailed: "आयात विफल रहा",
figmaPasteFailed: "Figma paste आयात विफल रहा",
uploadFailed: "File upload विफल रहा",
invalidFigFile: ".fig पर समाप्त होने वाली file चुनें।",
figFileTooLarge: ".fig files 50 MB या उससे छोटी होनी चाहिए।",
},
},
},
},
"ar-SA": {
designEditor: {
import: {
title: "استيراد",
description: "استورد HTML حافظة Figma أو HTML مستقلا كشاشات Design.",
figmaPasteTitle: "لصق من Figma",
figmaPasteDescription:
"انسخ إطارا أو طبقة في Figma، ثم الصقها في لوحة Design. يستورد Design HTML المرئي من الحافظة.",
figmaPasteTarget: "الصق في اللوحة",
figmaPasteApiKeyHint:
"قم بربط رمز الوصول الخاص بك في Figma للحصول على استيراد دقيق للعقد.",
figmaPasteMatchGuidance:
"تعذّرت المطابقة مع عُقد Figma محددة. الصق رابط الإطار بدلاً من ذلك للحصول على استيراد دقيق.",
figmaPasteRestLabel: "تم الاستيراد عبر واجهة Figma البرمجية",
figmaPasteHtmlLabel: "تم الاستيراد من معاينة الحافظة",
figmaPasteLocalKiwiLabel:
"تم الاستيراد بدون رمز — الأشكال الهندسية والنص فقط",
figmaPasteImagesNeedToken:
"{{count}} صورة{{plural}} تحتاج إلى الوصول إلى Figma للتحميل.",
figmaHydrationDialogTitle: "ربط Figma لتحميل الصور",
figmaHydrationDialogDescription:
"أدخل رمز الوصول إلى Figma لتحميل {{count}} صورة{{plural}} مفقودة في الشاشة{{screensPlural}} المستوردة.",
figmaHydrationConnectAndLoad: "ربط وتحميل الصور",
figmaHydrationSuccess: "تم تحميل الصور بنجاح",
figmaHydrationSuccessDescription:
"تم ملء {{count}} صورة{{plural}} من Figma.",
figUploadTitle: "رفع .fig",
figUploadDescription:
"ميزة تجريبية: تنسيق .fig في Figma مملوك وقد يتغير. تتحول الطبقات المدعومة إلى شاشات قابلة للتحرير، وقد تختلف بعض الميزات. الحد الأقصى 50 ميغابايت.",
chooseFigFile: "اختر ملف .fig",
figUploadUploading: "جار الرفع {{progress}}%",
figUploadProcessing: "جار التحويل…",
htmlTitle: "استيراد HTML",
htmlDescription:
"الصق أو ارفع HTML مستقلا. يحفظه Design كشاشة جديدة دون حقنه في واجهة المحرر.",
htmlPlaceholder: "الصق HTML مستقلا هنا...",
importHtml: "استيراد HTML",
chooseHtmlFile: "اختر ملف HTML",
githubTitle: "GitHub",
githubDescription: "قريبا: استيراد الشاشات والمكونات مباشرة من مستودع.",
localTitle: "تطبيق محلي",
localDescription:
"وصّل أي تطبيق محلي قيد التشغيل باستخدام /visual-edit.",
visualEditGuidance:
"ثبّت مهارة /visual-edit، وشغّل أي تطبيق محلي، ثم نفّذ أمر الجسر من مستودع ذلك التطبيق ليتمكن الوكيل من إضافة شاشات مدعومة بروابط URL.",
comingSoon: "قريبا",
warningsToast: "اكتمل الاستيراد مع تحذيرات",
figmaImageFallbackWarning:
"بدائل الصور: {{count}}. يتم الحفاظ على المظهر، لكن هذه الطبقات ليست قابلة للتحرير بالكامل.",
figmaApproximationWarning:
"طبقات تقريبية: {{count}}. لا يمكن لـ HTML/CSS تمثيل جميع خصائص Figma بدقة.",
figmaSuccess: "تم استيراد لصق Figma",
htmlSuccess: "تم استيراد HTML",
uploadSuccess: "تم استيراد الملف",
lastImport: "آخر استيراد",
errors: {
notHtml: "الصق أو اختر HTML صالحا للاستيراد.",
importFailed: "فشل الاستيراد",
figmaPasteFailed: "فشل استيراد لصق Figma",
uploadFailed: "فشل رفع الملف",
invalidFigFile: "اختر ملفا ينتهي بـ .fig.",
figFileTooLarge: "يجب ألا يتجاوز ملف .fig حجم 50 ميغابايت.",
},
},
},
},
} satisfies Record, PartialMessages>;
const designFigmaConnectionOverrides = {
"zh-TW": {
chat: {
figmaLink: {
frameDetected: "偵測到 Figma 畫框",
fileDetected: "偵測到 Figma 檔案",
connected: "已連線",
connectedLast4: "已連線 ••••{{last4}}",
checkingConnection: "正在檢查 Figma 連線…",
connectionCheckFailed: "無法檢查 Figma 連線",
connectFailed: "無法連線 Figma",
connectDescription:
"連線一次,即可透過聊天匯入、檢查或重用此 Figma 連結。",
tokenLabel: "Figma 存取權杖",
tokenPlaceholder: "貼上 Figma 存取權杖",
connecting: "正在連線…",
connect: "連線",
getToken: "取得權杖",
importFrame: "匯入畫框",
chooseFrame: "選擇畫框",
inspect: "檢查",
exportSvg: "匯出 SVG",
actionsPrefill: "檢閱後再傳送",
retry: "重試",
},
},
designEditor: {
import: {
figmaUrlTitle: "Figma 畫框網址",
figmaUrlDescription: "從 Figma 連結匯入畫框或檔案。",
figmaUrlLabel: "Figma 畫框或檔案網址",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "正在檢查 Figma 連線…",
figmaConnected: "Figma 已連線",
figmaConnectedWithSuffix: "Figma 已連線 · ••••{{suffix}}",
figmaTokenLabel: "Figma 存取權杖",
figmaTokenDocs: "取得權杖",
figmaTokenPlaceholder: "貼上您的 Figma 個人存取權杖",
figmaTokenDescription:
"安全儲存以供 Figma 匯入和代理聊天使用。權杖絕不會加入聊天。",
importFigmaUrl: "從 Figma 匯入",
saveKeyAndImport: "儲存金鑰並匯入",
figmaUrlSuccess: "已從 Figma 匯入。",
errors: {
figmaUrlRequired: "請貼上 Figma 畫框或檔案網址。",
invalidFigmaUrl: "請輸入有效的 figma.com 畫框或檔案網址。",
figmaImportFailed: "無法從 Figma 匯入",
},
},
},
},
"zh-CN": {
chat: {
figmaLink: {
frameDetected: "检测到 Figma 画框",
fileDetected: "检测到 Figma 文件",
connected: "已连接",
connectedLast4: "已连接 ••••{{last4}}",
checkingConnection: "正在检查 Figma 连接…",
connectionCheckFailed: "无法检查 Figma 连接",
connectFailed: "无法连接 Figma",
connectDescription:
"连接一次,即可通过聊天导入、检查或复用此 Figma 链接。",
tokenLabel: "Figma 访问令牌",
tokenPlaceholder: "粘贴 Figma 访问令牌",
connecting: "正在连接…",
connect: "连接",
getToken: "获取令牌",
importFrame: "导入画框",
chooseFrame: "选择画框",
inspect: "检查",
exportSvg: "导出 SVG",
actionsPrefill: "检查后发送",
retry: "重试",
},
},
designEditor: {
import: {
figmaUrlTitle: "Figma 画框 URL",
figmaUrlDescription: "从 Figma 链接导入画框或文件。",
figmaUrlLabel: "Figma 画框或文件 URL",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "正在检查 Figma 连接…",
figmaConnected: "Figma 已连接",
figmaConnectedWithSuffix: "Figma 已连接 · ••••{{suffix}}",
figmaTokenLabel: "Figma 访问令牌",
figmaTokenDocs: "获取令牌",
figmaTokenPlaceholder: "粘贴您的 Figma 个人访问令牌",
figmaTokenDescription:
"安全保存以用于 Figma 导入和代理聊天。令牌绝不会加入聊天。",
importFigmaUrl: "从 Figma 导入",
saveKeyAndImport: "保存密钥并导入",
figmaUrlSuccess: "已从 Figma 导入。",
errors: {
figmaUrlRequired: "请粘贴 Figma 画框或文件 URL。",
invalidFigmaUrl: "请输入有效的 figma.com 画框或文件 URL。",
figmaImportFailed: "无法从 Figma 导入",
},
},
},
},
"es-ES": {
chat: {
figmaLink: {
frameDetected: "Marco de Figma detectado",
fileDetected: "Archivo de Figma detectado",
connected: "Conectado",
connectedLast4: "Conectado ••••{{last4}}",
checkingConnection: "Comprobando la conexión con Figma…",
connectionCheckFailed: "No se pudo comprobar la conexión con Figma",
connectFailed: "No se pudo conectar Figma",
connectDescription:
"Conecta una vez para importar, inspeccionar o reutilizar este enlace de Figma en el chat.",
tokenLabel: "Token de acceso de Figma",
tokenPlaceholder: "Pega el token de acceso de Figma",
connecting: "Conectando…",
connect: "Conectar",
getToken: "Obtener token",
importFrame: "Importar marco",
chooseFrame: "Elegir marco",
inspect: "Inspeccionar",
exportSvg: "Exportar SVG",
actionsPrefill: "Revisa y envía",
retry: "Reintentar",
},
},
designEditor: {
import: {
figmaUrlTitle: "URL de marco de Figma",
figmaUrlDescription:
"Importa un marco o archivo desde un enlace de Figma.",
figmaUrlLabel: "URL de marco o archivo de Figma",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "Comprobando la conexión con Figma…",
figmaConnected: "Figma conectado",
figmaConnectedWithSuffix: "Figma conectado · ••••{{suffix}}",
figmaTokenLabel: "Token de acceso de Figma",
figmaTokenDocs: "Obtener un token",
figmaTokenPlaceholder: "Pega tu token de acceso personal de Figma",
figmaTokenDescription:
"Se guarda de forma segura para importaciones y chat. El token nunca se añade al chat.",
importFigmaUrl: "Importar desde Figma",
saveKeyAndImport: "Guardar clave e importar",
figmaUrlSuccess: "Importado desde Figma.",
errors: {
figmaUrlRequired: "Pega una URL de marco o archivo de Figma.",
invalidFigmaUrl: "Introduce una URL válida de figma.com.",
figmaImportFailed: "No se pudo importar desde Figma",
},
},
},
},
"fr-FR": {
chat: {
figmaLink: {
frameDetected: "Frame Figma détectée",
fileDetected: "Fichier Figma détecté",
connected: "Connecté",
connectedLast4: "Connecté ••••{{last4}}",
checkingConnection: "Vérification de la connexion Figma…",
connectionCheckFailed: "Impossible de vérifier la connexion Figma",
connectFailed: "Impossible de connecter Figma",
connectDescription:
"Connectez-vous une fois pour importer, inspecter ou réutiliser ce lien Figma dans le chat.",
tokenLabel: "Jeton d’accès Figma",
tokenPlaceholder: "Collez le jeton d’accès Figma",
connecting: "Connexion…",
connect: "Connecter",
getToken: "Obtenir un jeton",
importFrame: "Importer la frame",
chooseFrame: "Choisir une frame",
inspect: "Inspecter",
exportSvg: "Exporter SVG",
actionsPrefill: "Vérifiez puis envoyez",
retry: "Réessayer",
},
},
designEditor: {
import: {
figmaUrlTitle: "URL de frame Figma",
figmaUrlDescription:
"Importez une frame ou un fichier depuis un lien Figma.",
figmaUrlLabel: "URL de frame ou de fichier Figma",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "Vérification de la connexion Figma…",
figmaConnected: "Figma connecté",
figmaConnectedWithSuffix: "Figma connecté · ••••{{suffix}}",
figmaTokenLabel: "Jeton d’accès Figma",
figmaTokenDocs: "Obtenir un jeton",
figmaTokenPlaceholder: "Collez votre jeton d’accès personnel Figma",
figmaTokenDescription:
"Enregistré de façon sécurisée pour les imports et le chat. Le jeton n’est jamais ajouté au chat.",
importFigmaUrl: "Importer depuis Figma",
saveKeyAndImport: "Enregistrer la clé et importer",
figmaUrlSuccess: "Importé depuis Figma.",
errors: {
figmaUrlRequired: "Collez une URL de frame ou de fichier Figma.",
invalidFigmaUrl: "Saisissez une URL figma.com valide.",
figmaImportFailed: "Impossible d’importer depuis Figma",
},
},
},
},
"de-DE": {
chat: {
figmaLink: {
frameDetected: "Figma-Frame erkannt",
fileDetected: "Figma-Datei erkannt",
connected: "Verbunden",
connectedLast4: "Verbunden ••••{{last4}}",
checkingConnection: "Figma-Verbindung wird geprüft…",
connectionCheckFailed: "Figma-Verbindung konnte nicht geprüft werden",
connectFailed: "Figma konnte nicht verbunden werden",
connectDescription:
"Einmal verbinden, um diesen Figma-Link im Chat zu importieren, zu prüfen oder wiederzuverwenden.",
tokenLabel: "Figma-Zugriffstoken",
tokenPlaceholder: "Figma-Zugriffstoken einfügen",
connecting: "Verbindung wird hergestellt…",
connect: "Verbinden",
getToken: "Token abrufen",
importFrame: "Frame importieren",
chooseFrame: "Frame wählen",
inspect: "Prüfen",
exportSvg: "SVG exportieren",
actionsPrefill: "Prüfen und senden",
retry: "Erneut versuchen",
},
},
designEditor: {
import: {
figmaUrlTitle: "Figma-Frame-URL",
figmaUrlDescription:
"Frame oder Datei über einen Figma-Link importieren.",
figmaUrlLabel: "Figma-Frame- oder Datei-URL",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "Figma-Verbindung wird geprüft…",
figmaConnected: "Figma verbunden",
figmaConnectedWithSuffix: "Figma verbunden · ••••{{suffix}}",
figmaTokenLabel: "Figma-Zugriffstoken",
figmaTokenDocs: "Token abrufen",
figmaTokenPlaceholder: "Persönliches Figma-Zugriffstoken einfügen",
figmaTokenDescription:
"Sicher für Figma-Importe und Agent-Chat gespeichert. Das Token wird nie zum Chat hinzugefügt.",
importFigmaUrl: "Aus Figma importieren",
saveKeyAndImport: "Schlüssel speichern und importieren",
figmaUrlSuccess: "Aus Figma importiert.",
errors: {
figmaUrlRequired: "Figma-Frame- oder Datei-URL einfügen.",
invalidFigmaUrl: "Gültige figma.com-URL eingeben.",
figmaImportFailed: "Import aus Figma fehlgeschlagen",
},
},
},
},
"ja-JP": {
chat: {
figmaLink: {
frameDetected: "Figma フレームを検出しました",
fileDetected: "Figma ファイルを検出しました",
connected: "接続済み",
connectedLast4: "接続済み ••••{{last4}}",
checkingConnection: "Figma 接続を確認中…",
connectionCheckFailed: "Figma 接続を確認できませんでした",
connectFailed: "Figma に接続できませんでした",
connectDescription:
"一度接続すると、この Figma リンクをチャットでインポート、確認、再利用できます。",
tokenLabel: "Figma アクセストークン",
tokenPlaceholder: "Figma アクセストークンを貼り付け",
connecting: "接続中…",
connect: "接続",
getToken: "トークンを取得",
importFrame: "フレームをインポート",
chooseFrame: "フレームを選択",
inspect: "確認",
exportSvg: "SVG をエクスポート",
actionsPrefill: "確認して送信",
retry: "再試行",
},
},
designEditor: {
import: {
figmaUrlTitle: "Figma フレーム URL",
figmaUrlDescription:
"Figma リンクからフレームまたはファイルをインポートします。",
figmaUrlLabel: "Figma フレームまたはファイル URL",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "Figma 接続を確認中…",
figmaConnected: "Figma 接続済み",
figmaConnectedWithSuffix: "Figma 接続済み · ••••{{suffix}}",
figmaTokenLabel: "Figma アクセストークン",
figmaTokenDocs: "トークンを取得",
figmaTokenPlaceholder: "Figma 個人アクセストークンを貼り付け",
figmaTokenDescription:
"Figma インポートとエージェントチャット用に安全に保存されます。トークンはチャットに追加されません。",
importFigmaUrl: "Figma からインポート",
saveKeyAndImport: "キーを保存してインポート",
figmaUrlSuccess: "Figma からインポートしました。",
errors: {
figmaUrlRequired:
"Figma フレームまたはファイル URL を貼り付けてください。",
invalidFigmaUrl: "有効な figma.com URL を入力してください。",
figmaImportFailed: "Figma からインポートできませんでした",
},
},
},
},
"ko-KR": {
chat: {
figmaLink: {
frameDetected: "Figma 프레임 감지됨",
fileDetected: "Figma 파일 감지됨",
connected: "연결됨",
connectedLast4: "연결됨 ••••{{last4}}",
checkingConnection: "Figma 연결 확인 중…",
connectionCheckFailed: "Figma 연결을 확인할 수 없습니다",
connectFailed: "Figma에 연결할 수 없습니다",
connectDescription:
"한 번 연결하면 채팅에서 이 Figma 링크를 가져오고 검사하거나 재사용할 수 있습니다.",
tokenLabel: "Figma 액세스 토큰",
tokenPlaceholder: "Figma 액세스 토큰 붙여넣기",
connecting: "연결 중…",
connect: "연결",
getToken: "토큰 받기",
importFrame: "프레임 가져오기",
chooseFrame: "프레임 선택",
inspect: "검사",
exportSvg: "SVG 내보내기",
actionsPrefill: "검토 후 보내기",
retry: "다시 시도",
},
},
designEditor: {
import: {
figmaUrlTitle: "Figma 프레임 URL",
figmaUrlDescription: "Figma 링크에서 프레임이나 파일을 가져옵니다.",
figmaUrlLabel: "Figma 프레임 또는 파일 URL",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "Figma 연결 확인 중…",
figmaConnected: "Figma 연결됨",
figmaConnectedWithSuffix: "Figma 연결됨 · ••••{{suffix}}",
figmaTokenLabel: "Figma 액세스 토큰",
figmaTokenDocs: "토큰 받기",
figmaTokenPlaceholder: "Figma 개인 액세스 토큰 붙여넣기",
figmaTokenDescription:
"Figma 가져오기와 에이전트 채팅에 안전하게 저장됩니다. 토큰은 채팅에 추가되지 않습니다.",
importFigmaUrl: "Figma에서 가져오기",
saveKeyAndImport: "키 저장 후 가져오기",
figmaUrlSuccess: "Figma에서 가져왔습니다.",
errors: {
figmaUrlRequired: "Figma 프레임 또는 파일 URL을 붙여넣으세요.",
invalidFigmaUrl: "유효한 figma.com URL을 입력하세요.",
figmaImportFailed: "Figma에서 가져올 수 없습니다",
},
},
},
},
"pt-BR": {
chat: {
figmaLink: {
frameDetected: "Frame do Figma detectado",
fileDetected: "Arquivo do Figma detectado",
connected: "Conectado",
connectedLast4: "Conectado ••••{{last4}}",
checkingConnection: "Verificando conexão com o Figma…",
connectionCheckFailed:
"Não foi possível verificar a conexão com o Figma",
connectFailed: "Não foi possível conectar o Figma",
connectDescription:
"Conecte uma vez para importar, inspecionar ou reutilizar este link do Figma no chat.",
tokenLabel: "Token de acesso do Figma",
tokenPlaceholder: "Cole o token de acesso do Figma",
connecting: "Conectando…",
connect: "Conectar",
getToken: "Obter token",
importFrame: "Importar frame",
chooseFrame: "Escolher frame",
inspect: "Inspecionar",
exportSvg: "Exportar SVG",
actionsPrefill: "Revise e envie",
retry: "Tentar novamente",
},
},
designEditor: {
import: {
figmaUrlTitle: "URL de frame do Figma",
figmaUrlDescription: "Importe um frame ou arquivo de um link do Figma.",
figmaUrlLabel: "URL de frame ou arquivo do Figma",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "Verificando conexão com o Figma…",
figmaConnected: "Figma conectado",
figmaConnectedWithSuffix: "Figma conectado · ••••{{suffix}}",
figmaTokenLabel: "Token de acesso do Figma",
figmaTokenDocs: "Obter token",
figmaTokenPlaceholder: "Cole seu token de acesso pessoal do Figma",
figmaTokenDescription:
"Salvo com segurança para importações e chat. O token nunca é adicionado ao chat.",
importFigmaUrl: "Importar do Figma",
saveKeyAndImport: "Salvar chave e importar",
figmaUrlSuccess: "Importado do Figma.",
errors: {
figmaUrlRequired: "Cole uma URL de frame ou arquivo do Figma.",
invalidFigmaUrl: "Insira uma URL válida do figma.com.",
figmaImportFailed: "Não foi possível importar do Figma",
},
},
},
},
"hi-IN": {
chat: {
figmaLink: {
frameDetected: "Figma frame मिला",
fileDetected: "Figma file मिली",
connected: "कनेक्टेड",
connectedLast4: "कनेक्टेड ••••{{last4}}",
checkingConnection: "Figma कनेक्शन जाँचा जा रहा है…",
connectionCheckFailed: "Figma कनेक्शन जाँचा नहीं जा सका",
connectFailed: "Figma कनेक्ट नहीं हो सका",
connectDescription:
"इस Figma link को chat में import, inspect या reuse करने के लिए एक बार connect करें।",
tokenLabel: "Figma एक्सेस टोकन",
tokenPlaceholder: "Figma access token paste करें",
connecting: "कनेक्ट हो रहा है…",
connect: "कनेक्ट करें",
getToken: "Token पाएँ",
importFrame: "Frame import करें",
chooseFrame: "Frame चुनें",
inspect: "Inspect करें",
exportSvg: "SVG export करें",
actionsPrefill: "जाँचें, फिर भेजें",
retry: "फिर कोशिश करें",
},
},
designEditor: {
import: {
figmaUrlTitle: "Figma फ़्रेम URL",
figmaUrlDescription: "Figma link से frame या file import करें।",
figmaUrlLabel: "Figma frame या file URL",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "Figma कनेक्शन जाँचा जा रहा है…",
figmaConnected: "Figma कनेक्टेड",
figmaConnectedWithSuffix: "Figma कनेक्टेड · ••••{{suffix}}",
figmaTokenLabel: "Figma एक्सेस टोकन",
figmaTokenDocs: "Token पाएँ",
figmaTokenPlaceholder: "अपना Figma personal access token paste करें",
figmaTokenDescription:
"Figma imports और agent chat के लिए सुरक्षित रूप से सहेजा जाता है। Token chat में कभी नहीं जोड़ा जाता।",
importFigmaUrl: "Figma से import करें",
saveKeyAndImport: "Key save करके import करें",
figmaUrlSuccess: "Figma से import हो गया।",
errors: {
figmaUrlRequired: "Figma frame या file URL paste करें।",
invalidFigmaUrl: "Valid figma.com URL दर्ज करें।",
figmaImportFailed: "Figma से import नहीं हो सका",
},
},
},
},
"ar-SA": {
chat: {
figmaLink: {
frameDetected: "تم اكتشاف إطار Figma",
fileDetected: "تم اكتشاف ملف Figma",
connected: "متصل",
connectedLast4: "متصل ••••{{last4}}",
checkingConnection: "جار التحقق من اتصال Figma…",
connectionCheckFailed: "تعذر التحقق من اتصال Figma",
connectFailed: "تعذر توصيل Figma",
connectDescription:
"اتصل مرة واحدة لاستيراد رابط Figma هذا أو فحصه أو إعادة استخدامه عبر الدردشة.",
tokenLabel: "رمز وصول Figma",
tokenPlaceholder: "الصق رمز وصول Figma",
connecting: "جار الاتصال…",
connect: "اتصال",
getToken: "الحصول على رمز",
importFrame: "استيراد الإطار",
chooseFrame: "اختيار إطار",
inspect: "فحص",
exportSvg: "تصدير SVG",
actionsPrefill: "راجع ثم أرسل",
retry: "إعادة المحاولة",
},
},
designEditor: {
import: {
figmaUrlTitle: "رابط إطار Figma",
figmaUrlDescription: "استورد إطارا أو ملفا من رابط Figma.",
figmaUrlLabel: "رابط إطار أو ملف Figma",
figmaUrlPlaceholder: "https://www.figma.com/design/…",
figmaConnectionChecking: "جار التحقق من اتصال Figma…",
figmaConnected: "Figma متصل",
figmaConnectedWithSuffix: "Figma متصل · ••••{{suffix}}",
figmaTokenLabel: "رمز وصول Figma",
figmaTokenDocs: "الحصول على رمز",
figmaTokenPlaceholder: "الصق رمز وصول Figma الشخصي",
figmaTokenDescription:
"يحفظ بأمان لاستيراد Figma ودردشة الوكيل. لا يضاف الرمز إلى الدردشة أبدا.",
importFigmaUrl: "استيراد من Figma",
saveKeyAndImport: "حفظ المفتاح والاستيراد",
figmaUrlSuccess: "تم الاستيراد من Figma.",
errors: {
figmaUrlRequired: "الصق رابط إطار أو ملف Figma.",
invalidFigmaUrl: "أدخل رابط figma.com صالحا.",
figmaImportFailed: "تعذر الاستيراد من Figma",
},
},
},
},
} satisfies Record, PartialMessages>;
// Fill section's "Styles" affordance (color-styles library) — currently a
// disabled/coming-soon placeholder icon button rather than a dead click.
const designFillStylesComingSoonOverrides = {
"zh-TW": { editPanel: { labels: { stylesComingSoon: "樣式 — 即將推出" } } },
"zh-CN": { editPanel: { labels: { stylesComingSoon: "样式 — 即将推出" } } },
"es-ES": {
editPanel: { labels: { stylesComingSoon: "Estilos — Próximamente" } },
},
"fr-FR": {
editPanel: { labels: { stylesComingSoon: "Styles — Bientôt disponible" } },
},
"de-DE": {
editPanel: { labels: { stylesComingSoon: "Stile — Demnächst verfügbar" } },
},
"ja-JP": {
editPanel: { labels: { stylesComingSoon: "スタイル — 近日対応" } },
},
"ko-KR": {
editPanel: { labels: { stylesComingSoon: "스타일 — 곧 제공" } },
},
"pt-BR": {
editPanel: { labels: { stylesComingSoon: "Estilos — Em breve" } },
},
"hi-IN": {
editPanel: {
labels: { stylesComingSoon: "स्टाइल — जल्द आ रहा है" },
},
},
"ar-SA": {
editPanel: { labels: { stylesComingSoon: "الأنماط — قريبًا" } },
},
} satisfies Record, PartialMessages>;
// Frame-tool size-presets panel (Figma parity): the right-panel title plus
// category group labels shown while the Frame tool is armed. Preset device
// names (iPhone 16 Pro, etc.) are untranslated product-name literals, defined
// only once in `enUS.editPanel.framePresets.categories` — no override needed.
const designFramePresetsOverrides = {
"zh-CN": {
editPanel: {
framePresets: {
title: "画框",
categories: {
phone: "手机",
tablet: "平板",
desktop: "桌面",
presentation: "演示文稿",
watch: "手表",
paper: "纸张",
socialMedia: "社交媒体",
adUnit: "广告单元",
},
},
},
},
"es-ES": {
editPanel: {
framePresets: {
title: "Marco",
categories: {
phone: "Teléfono",
tablet: "Tableta",
desktop: "Escritorio",
presentation: "Presentación",
watch: "Reloj",
paper: "Papel",
socialMedia: "Redes sociales",
adUnit: "Unidad de anuncio",
},
},
},
},
"fr-FR": {
editPanel: {
framePresets: {
title: "Cadre",
categories: {
phone: "Téléphone",
tablet: "Tablette",
desktop: "Bureau",
presentation: "Présentation",
watch: "Montre",
paper: "Papier",
socialMedia: "Réseaux sociaux",
adUnit: "Unité publicitaire",
},
},
},
},
"de-DE": {
editPanel: {
framePresets: {
title: "Rahmen",
categories: {
phone: "Telefon",
tablet: "Tablet",
desktop: "Desktop",
presentation: "Präsentation",
watch: "Uhr",
paper: "Papier",
socialMedia: "Soziale Medien",
adUnit: "Anzeigenformat",
},
},
},
},
"ja-JP": {
editPanel: {
framePresets: {
title: "フレーム",
categories: {
phone: "電話",
tablet: "タブレット",
desktop: "デスクトップ",
presentation: "プレゼンテーション",
watch: "ウォッチ",
paper: "用紙",
socialMedia: "ソーシャルメディア",
adUnit: "広告ユニット",
},
},
},
},
"ko-KR": {
editPanel: {
framePresets: {
title: "프레임",
categories: {
phone: "휴대폰",
tablet: "태블릿",
desktop: "데스크톱",
presentation: "프레젠테이션",
watch: "시계",
paper: "용지",
socialMedia: "소셜 미디어",
adUnit: "광고 단위",
},
},
},
},
"pt-BR": {
editPanel: {
framePresets: {
title: "Quadro",
categories: {
phone: "Celular",
tablet: "Tablet",
desktop: "Área de trabalho",
presentation: "Apresentação",
watch: "Relógio",
paper: "Papel",
socialMedia: "Redes sociais",
adUnit: "Unidade de anúncio",
},
},
},
},
"hi-IN": {
editPanel: {
framePresets: {
title: "फ़्रेम",
categories: {
phone: "फ़ोन",
tablet: "टैबलेट",
desktop: "डेस्कटॉप",
presentation: "प्रेज़ेंटेशन",
watch: "वॉच",
paper: "पेपर",
socialMedia: "सोशल मीडिया",
adUnit: "विज्ञापन इकाई",
},
},
},
},
"ar-SA": {
editPanel: {
framePresets: {
title: "الإطار",
categories: {
phone: "الهاتف",
tablet: "الجهاز اللوحي",
desktop: "سطح المكتب",
presentation: "العرض التقديمي",
watch: "الساعة",
paper: "الورق",
socialMedia: "وسائل التواصل الاجتماعي",
adUnit: "وحدة إعلانية",
},
},
},
},
} satisfies Record, PartialMessages>;
// Figma-parity alignment/distribute/tidy/auto-layout sweep: the reshaped
// LayersPanel context menu's new pasteToReplace/frameSelection/
// flipHorizontal/flipVertical items, plus the one new toast the Shift+A
// "Add auto layout" handler introduces for a no-op screens selection.
// zh-TW's translations live directly in app/i18n/zh-TW.ts instead (see that
// file's layersPanel block) following this file's existing zh-TW convention.
const designAlignmentOverrides = {
"zh-CN": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported: "自动布局不适用于屏幕",
},
},
layersPanel: {
pasteToReplace: "粘贴替换",
frameSelection: "创建画框",
flipHorizontal: "水平翻转",
flipVertical: "垂直翻转",
},
},
"es-ES": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported:
"Agregar diseño automático no se aplica a las pantallas",
},
},
layersPanel: {
pasteToReplace: "Pegar para reemplazar",
frameSelection: "Enmarcar selección",
flipHorizontal: "Voltear horizontalmente",
flipVertical: "Voltear verticalmente",
},
},
"fr-FR": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported:
"Ajouter une disposition automatique ne s'applique pas aux écrans",
},
},
layersPanel: {
pasteToReplace: "Coller pour remplacer",
frameSelection: "Encadrer la sélection",
flipHorizontal: "Retourner horizontalement",
flipVertical: "Retourner verticalement",
},
},
"de-DE": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported:
"Auto-Layout hinzufügen gilt nicht für Bildschirme",
},
},
layersPanel: {
pasteToReplace: "Einfügen zum Ersetzen",
frameSelection: "Auswahl rahmen",
flipHorizontal: "Horizontal spiegeln",
flipVertical: "Vertikal spiegeln",
},
},
"ja-JP": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported:
"オートレイアウトの追加は画面には適用されません",
},
},
layersPanel: {
pasteToReplace: "置き換えて貼り付け",
frameSelection: "選択範囲をフレーム化",
flipHorizontal: "水平方向に反転",
flipVertical: "垂直方向に反転",
},
},
"ko-KR": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported:
"오토 레이아웃 추가는 화면에 적용되지 않습니다",
},
},
layersPanel: {
pasteToReplace: "교체하여 붙여넣기",
frameSelection: "선택 영역 프레임화",
flipHorizontal: "수평 뒤집기",
flipVertical: "수직 뒤집기",
},
},
"pt-BR": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported:
"Adicionar layout automático não se aplica a telas",
},
},
layersPanel: {
pasteToReplace: "Colar para substituir",
frameSelection: "Enquadrar seleção",
flipHorizontal: "Inverter horizontalmente",
flipVertical: "Inverter verticalmente",
},
},
"hi-IN": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported: "ऑटो लेआउट जोड़ें स्क्रीन पर लागू नहीं होता",
},
},
layersPanel: {
pasteToReplace: "बदलने के लिए पेस्ट करें",
frameSelection: "चयन को फ़्रेम करें",
flipHorizontal: "क्षैतिज रूप से फ़्लिप करें",
flipVertical: "लंबवत रूप से फ़्लिप करें",
},
},
"ar-SA": {
designEditor: {
toasts: {
autoLayoutScreensUnsupported:
"إضافة التخطيط التلقائي لا تنطبق على الشاشات",
},
},
layersPanel: {
pasteToReplace: "لصق للاستبدال",
frameSelection: "تأطير التحديد",
flipHorizontal: "قلب أفقيًا",
flipVertical: "قلب رأسيًا",
},
},
} satisfies Record, PartialMessages>;
// 3D-rotation inspector expander (Rotate X/Y, Perspective, the custom-
// transform note) plus the code-backed GLSL shader picker (GlslShaderPanel):
// fill/effect panel titles, the "Created by you"/"Presets" sections, saved-
// shader and preset-category labels, the detail-view toolbar, the Code-panel
// hint sentence, and the shader toasts. zh-TW's translations live directly in
// app/i18n/zh-TW.ts instead, following this file's existing zh-TW convention.
const designShaderAndRotationOverrides = {
"zh-CN": {
editPanel: {
labels: {
rotation3d: "3D 旋转",
rotationX: "旋转 X",
rotationY: "旋转 Y",
perspective: "透视",
perspectiveHint: "透视(空/0 = 无)",
customTransform: "自定义变换 — 无法编辑为 X/Y/Z 旋转",
shaderEffectType: "着色器",
},
shaders: {
fillsTitle: "着色器填充",
effectsTitle: "着色器效果",
createdByYou: "你创建的",
presets: "预设",
createNew: "新建",
ai: "AI",
savedInThisDesign: "已保存在此设计中",
noMatches: "没有匹配搜索的着色器",
backToBrowser: "返回着色器浏览",
closePanel: "关闭着色器面板",
editCode: "编辑 GLSL 代码",
removeShader: "移除着色器",
removeShaderEffect: "移除着色器效果",
noUniforms: "此着色器没有可调整的参数",
codeHint:
"GLSL 源代码已保存在此屏幕的 HTML 中 — 打开代码面板进行编辑。",
selectElementFirst: "请先选择一个屏幕元素",
selectCanvasElementFirst: "请先在画布上选择一个元素",
saveFailed: "无法保存着色器",
categories: {
gradientFlow: "渐变流动",
waves: "波浪",
noise: "噪点",
pattern: "图案",
texture: "纹理",
retro: "复古",
},
},
},
},
"es-ES": {
editPanel: {
labels: {
rotation3d: "Rotación 3D",
rotationX: "Rotar X",
rotationY: "Rotar Y",
perspective: "Perspectiva",
perspectiveHint: "Perspectiva (vacío/0 = ninguna)",
customTransform:
"Transformación personalizada — no se puede editar como rotación X/Y/Z",
shaderEffectType: "Shader",
},
shaders: {
fillsTitle: "Rellenos de shader",
effectsTitle: "Efectos de shader",
createdByYou: "Creados por ti",
presets: "Preajustes",
createNew: "Crear nuevo",
ai: "IA",
savedInThisDesign: "Guardado en este diseño",
noMatches: "Ningún shader coincide con tu búsqueda",
backToBrowser: "Volver al explorador de shaders",
closePanel: "Cerrar panel de shader",
editCode: "Editar código GLSL",
removeShader: "Quitar shader",
removeShaderEffect: "Quitar efecto de shader",
noUniforms: "Este shader no tiene parámetros ajustables",
codeHint:
"El código fuente GLSL está guardado en el HTML de esta pantalla — abre el panel de código para editarlo.",
selectElementFirst: "Selecciona primero un elemento de pantalla",
selectCanvasElementFirst: "Selecciona primero un elemento en el lienzo",
saveFailed: "No se pudo guardar el shader",
categories: {
gradientFlow: "Flujo de gradiente",
waves: "Ondas",
noise: "Ruido",
pattern: "Patrones",
texture: "Textura",
retro: "Retro",
},
},
},
},
"fr-FR": {
editPanel: {
labels: {
rotation3d: "Rotation 3D",
rotationX: "Rotation X",
rotationY: "Rotation Y",
perspective: "Perspective",
perspectiveHint: "Perspective (vide/0 = aucune)",
customTransform:
"Transformation personnalisée — ne peut pas être modifiée comme rotation X/Y/Z",
shaderEffectType: "Shader",
},
shaders: {
fillsTitle: "Remplissages shader",
effectsTitle: "Effets shader",
createdByYou: "Créés par vous",
presets: "Préréglages",
createNew: "Créer",
ai: "IA",
savedInThisDesign: "Enregistré dans ce design",
noMatches: "Aucun shader ne correspond à votre recherche",
backToBrowser: "Retour à la liste des shaders",
closePanel: "Fermer le panneau shader",
editCode: "Modifier le code GLSL",
removeShader: "Supprimer le shader",
removeShaderEffect: "Supprimer l'effet shader",
noUniforms: "Ce shader n'a aucun paramètre réglable",
codeHint:
"Le code source GLSL est enregistré dans le HTML de cet écran — ouvrez le panneau Code pour le modifier.",
selectElementFirst: "Sélectionnez d'abord un élément d'écran",
selectCanvasElementFirst:
"Sélectionnez d'abord un élément sur le canevas",
saveFailed: "Impossible d'enregistrer le shader",
categories: {
gradientFlow: "Flux de dégradé",
waves: "Vagues",
noise: "Bruit",
pattern: "Motifs",
texture: "Texture",
retro: "Rétro",
},
},
},
},
"de-DE": {
editPanel: {
labels: {
rotation3d: "3D-Rotation",
rotationX: "X-Rotation",
rotationY: "Y-Rotation",
perspective: "Perspektive",
perspectiveHint: "Perspektive (leer/0 = keine)",
customTransform:
"Benutzerdefinierte Transformation — kann nicht als X/Y/Z-Rotation bearbeitet werden",
shaderEffectType: "Shader",
},
shaders: {
fillsTitle: "Shader-Füllungen",
effectsTitle: "Shader-Effekte",
createdByYou: "Von dir erstellt",
presets: "Voreinstellungen",
createNew: "Neu erstellen",
ai: "KI",
savedInThisDesign: "In diesem Design gespeichert",
noMatches: "Keine Shader entsprechen deiner Suche",
backToBrowser: "Zurück zur Shader-Übersicht",
closePanel: "Shader-Panel schließen",
editCode: "GLSL-Code bearbeiten",
removeShader: "Shader entfernen",
removeShaderEffect: "Shader-Effekt entfernen",
noUniforms: "Dieser Shader hat keine einstellbaren Parameter",
codeHint:
"Der GLSL-Quellcode ist im HTML dieses Bildschirms gespeichert — öffne das Code-Panel, um ihn zu bearbeiten.",
selectElementFirst: "Wähle zuerst ein Bildschirmelement aus",
selectCanvasElementFirst:
"Wähle zuerst ein Element auf der Leinwand aus",
saveFailed: "Shader konnte nicht gespeichert werden",
categories: {
gradientFlow: "Verlaufsfluss",
waves: "Wellen",
noise: "Rauschen",
pattern: "Muster",
texture: "Textur",
retro: "Retro",
},
},
},
},
"ja-JP": {
editPanel: {
labels: {
rotation3d: "3D 回転",
rotationX: "X 軸回転",
rotationY: "Y 軸回転",
perspective: "パースペクティブ",
perspectiveHint: "パースペクティブ(空/0 = なし)",
customTransform: "カスタム変換 — X/Y/Z 回転として編集できません",
shaderEffectType: "シェーダー",
},
shaders: {
fillsTitle: "シェーダーフィル",
effectsTitle: "シェーダーエフェクト",
createdByYou: "自分が作成",
presets: "プリセット",
createNew: "新規作成",
ai: "AI",
savedInThisDesign: "このデザインに保存済み",
noMatches: "検索に一致するシェーダーがありません",
backToBrowser: "シェーダー一覧に戻る",
closePanel: "シェーダーパネルを閉じる",
editCode: "GLSL コードを編集",
removeShader: "シェーダーを削除",
removeShaderEffect: "シェーダーエフェクトを削除",
noUniforms: "このシェーダーには調整可能なパラメーターがありません",
codeHint:
"GLSL のソースはこの画面の HTML に保存されています — コードパネルを開いて編集してください。",
selectElementFirst: "まず画面上の要素を選択してください",
selectCanvasElementFirst: "まずキャンバス上の要素を選択してください",
saveFailed: "シェーダーを保存できませんでした",
categories: {
gradientFlow: "グラデーションフロー",
waves: "波",
noise: "ノイズ",
pattern: "パターン",
texture: "テクスチャ",
retro: "レトロ",
},
},
},
},
"ko-KR": {
editPanel: {
labels: {
rotation3d: "3D 회전",
rotationX: "X 회전",
rotationY: "Y 회전",
perspective: "원근감",
perspectiveHint: "원근감 (비어 있음/0 = 없음)",
customTransform: "사용자 지정 변환 — X/Y/Z 회전으로 편집할 수 없음",
shaderEffectType: "셰이더",
},
shaders: {
fillsTitle: "셰이더 채우기",
effectsTitle: "셰이더 효과",
createdByYou: "내가 만든 항목",
presets: "프리셋",
createNew: "새로 만들기",
ai: "AI",
savedInThisDesign: "이 디자인에 저장됨",
noMatches: "검색과 일치하는 셰이더가 없습니다",
backToBrowser: "셰이더 찾아보기로 돌아가기",
closePanel: "셰이더 패널 닫기",
editCode: "GLSL 코드 편집",
removeShader: "셰이더 제거",
removeShaderEffect: "셰이더 효과 제거",
noUniforms: "이 셰이더에는 조정 가능한 유니폼이 없습니다",
codeHint:
"GLSL 소스는 이 화면의 HTML에 저장되어 있습니다 — 코드 패널을 열어 편집하세요.",
selectElementFirst: "먼저 화면 요소를 선택하세요",
selectCanvasElementFirst: "먼저 캔버스에서 요소를 선택하세요",
saveFailed: "셰이더를 저장할 수 없습니다",
categories: {
gradientFlow: "그라디언트 플로우",
waves: "웨이브",
noise: "노이즈",
pattern: "패턴",
texture: "텍스처",
retro: "레트로",
},
},
},
},
"pt-BR": {
editPanel: {
labels: {
rotation3d: "Rotação 3D",
rotationX: "Girar X",
rotationY: "Girar Y",
perspective: "Perspectiva",
perspectiveHint: "Perspectiva (vazio/0 = nenhuma)",
customTransform:
"Transformação personalizada — não pode ser editada como rotação X/Y/Z",
shaderEffectType: "Shader",
},
shaders: {
fillsTitle: "Preenchimentos de shader",
effectsTitle: "Efeitos de shader",
createdByYou: "Criados por você",
presets: "Predefinições",
createNew: "Criar novo",
ai: "IA",
savedInThisDesign: "Salvo neste design",
noMatches: "Nenhum shader corresponde à sua busca",
backToBrowser: "Voltar à lista de shaders",
closePanel: "Fechar painel de shader",
editCode: "Editar código GLSL",
removeShader: "Remover shader",
removeShaderEffect: "Remover efeito de shader",
noUniforms: "Este shader não tem parâmetros ajustáveis",
codeHint:
"O código-fonte GLSL está salvo no HTML desta tela — abra o painel de código para editá-lo.",
selectElementFirst: "Selecione primeiro um elemento da tela",
selectCanvasElementFirst: "Selecione primeiro um elemento no canvas",
saveFailed: "Não foi possível salvar o shader",
categories: {
gradientFlow: "Fluxo de gradiente",
waves: "Ondas",
noise: "Ruído",
pattern: "Padrões",
texture: "Textura",
retro: "Retrô",
},
},
},
},
"hi-IN": {
editPanel: {
labels: {
rotation3d: "3D रोटेशन",
rotationX: "X घुमाएं",
rotationY: "Y घुमाएं",
perspective: "पर्सपेक्टिव",
perspectiveHint: "पर्सपेक्टिव (खाली/0 = कोई नहीं)",
customTransform:
"कस्टम ट्रांसफ़ॉर्म — इसे X/Y/Z रोटेशन के रूप में संपादित नहीं किया जा सकता",
shaderEffectType: "शेडर",
},
shaders: {
fillsTitle: "शेडर फ़िल",
effectsTitle: "शेडर प्रभाव",
createdByYou: "आपके द्वारा बनाए गए",
presets: "प्रीसेट",
createNew: "नया बनाएं",
ai: "AI",
savedInThisDesign: "इस डिज़ाइन में सहेजा गया",
noMatches: "आपकी खोज से कोई शेडर मेल नहीं खाता",
backToBrowser: "शेडर ब्राउज़र पर वापस जाएं",
closePanel: "शेडर पैनल बंद करें",
editCode: "GLSL कोड संपादित करें",
removeShader: "शेडर हटाएं",
removeShaderEffect: "शेडर प्रभाव हटाएं",
noUniforms: "इस शेडर में कोई समायोज्य यूनिफ़ॉर्म नहीं है",
codeHint:
"GLSL स्रोत इस स्क्रीन के HTML में सहेजा गया है — इसे संपादित करने के लिए कोड पैनल खोलें।",
selectElementFirst: "पहले एक स्क्रीन तत्व चुनें",
selectCanvasElementFirst: "पहले कैनवास पर एक तत्व चुनें",
saveFailed: "शेडर सहेजा नहीं जा सका",
categories: {
gradientFlow: "ग्रेडिएंट फ़्लो",
waves: "वेव्स",
noise: "नॉइज़",
pattern: "पैटर्न",
texture: "टेक्सचर",
retro: "रेट्रो",
},
},
},
},
"ar-SA": {
editPanel: {
labels: {
rotation3d: "دوران ثلاثي الأبعاد",
rotationX: "دوران X",
rotationY: "دوران Y",
perspective: "المنظور",
perspectiveHint: "المنظور (فارغ/0 = بلا)",
customTransform: "تحويل مخصص — لا يمكن تعديله كدوران X/Y/Z",
shaderEffectType: "التظليل",
},
shaders: {
fillsTitle: "تعبئات التظليل",
effectsTitle: "تأثيرات التظليل",
createdByYou: "من إنشائك",
presets: "الإعدادات المسبقة",
createNew: "إنشاء جديد",
ai: "AI",
savedInThisDesign: "محفوظ في هذا التصميم",
noMatches: "لا توجد تظليلات مطابقة لبحثك",
backToBrowser: "العودة إلى تصفح التظليل",
closePanel: "إغلاق لوحة التظليل",
editCode: "تحرير كود GLSL",
removeShader: "إزالة التظليل",
removeShaderEffect: "إزالة تأثير التظليل",
noUniforms: "لا توجد معلمات قابلة للتعديل لهذا التظليل",
codeHint:
"مصدر GLSL محفوظ في HTML الخاص بهذه الشاشة — افتح لوحة الكود لتعديله.",
selectElementFirst: "الرجاء تحديد عنصر شاشة أولاً",
selectCanvasElementFirst: "الرجاء تحديد عنصر على اللوحة أولاً",
saveFailed: "تعذر حفظ التظليل",
categories: {
gradientFlow: "تدفق متدرج",
waves: "موجات",
noise: "تشويش",
pattern: "أنماط",
texture: "ملمس",
retro: "كلاسيكي",
},
},
},
},
} satisfies Record, PartialMessages>;
// Element interaction-state inspector (Default / Hover / Focus /
// Focus-visible / Pressed / Disabled selector, the "Editing state"
// indicator, and the per-property override reset affordance). zh-TW's
// translations live directly in app/i18n/zh-TW.ts instead, following this
// file's existing zh-TW convention.
const designInteractionStatesOverrides = {
"zh-CN": {
editPanel: {
interactionStates: {
default: "默认",
hover: "悬停",
focus: "聚焦",
focusVisible: "聚焦可见",
active: "按下",
disabled: "禁用",
selectorLabel: "交互状态",
selectorTooltip: "预览并编辑悬停、聚焦和按下状态",
editingState: "正在编辑{{state}}状态",
editingStateTooltip:
"正在编辑{{state}}状态 — 这里的样式仅在元素处于{{state}}时生效",
hasOverrideIndicator: "此属性在该状态下已被覆盖",
reset: "重置",
resetOverride: "重置覆盖项",
resetOverrideTooltip: "清除此状态的覆盖项,使用默认值",
},
},
},
"es-ES": {
editPanel: {
interactionStates: {
default: "Predeterminado",
hover: "Hover",
focus: "Foco",
focusVisible: "Foco visible",
active: "Presionado",
disabled: "Deshabilitado",
selectorLabel: "Estado de interacción",
selectorTooltip:
"Previsualiza y edita los estados hover, foco y presionado",
editingState: "Editando el estado {{state}}",
editingStateTooltip:
"Editando el estado {{state}} — estos estilos solo se aplican cuando el elemento está en {{state}}",
hasOverrideIndicator: "Esta propiedad está sobrescrita en este estado",
reset: "Restablecer",
resetOverride: "Restablecer sobrescritura",
resetOverrideTooltip:
"Borra la sobrescritura de este estado y usa el valor predeterminado",
},
},
},
"fr-FR": {
editPanel: {
interactionStates: {
default: "Par défaut",
hover: "Survol",
focus: "Focus",
focusVisible: "Focus clavier",
active: "Pressé",
disabled: "Désactivé",
selectorLabel: "État d'interaction",
selectorTooltip:
"Prévisualiser et modifier les états survol, focus et pressé",
editingState: "Modification de l'état {{state}}",
editingStateTooltip:
"Modification de l'état {{state}} — ces styles s'appliquent uniquement quand l'élément est en état {{state}}",
hasOverrideIndicator: "Cette propriété est remplacée dans cet état",
reset: "Réinitialiser",
resetOverride: "Réinitialiser la substitution",
resetOverrideTooltip:
"Efface la substitution de cet état et utilise la valeur par défaut",
},
},
},
"de-DE": {
editPanel: {
interactionStates: {
default: "Standard",
hover: "Hover",
focus: "Fokus",
focusVisible: "Fokus sichtbar",
active: "Gedrückt",
disabled: "Deaktiviert",
selectorLabel: "Interaktionszustand",
selectorTooltip:
"Hover-, Fokus- und Gedrückt-Zustände in der Vorschau anzeigen und bearbeiten",
editingState: "Bearbeite Zustand {{state}}",
editingStateTooltip:
"Bearbeitung des Zustands {{state}} — diese Stile gelten nur, wenn das Element {{state}} ist",
hasOverrideIndicator:
"Diese Eigenschaft ist in diesem Zustand überschrieben",
reset: "Zurücksetzen",
resetOverride: "Überschreibung zurücksetzen",
resetOverrideTooltip:
"Überschreibung dieses Zustands löschen und Standardwert verwenden",
},
},
},
"ja-JP": {
editPanel: {
interactionStates: {
default: "デフォルト",
hover: "ホバー",
focus: "フォーカス",
focusVisible: "フォーカス表示",
active: "押下時",
disabled: "無効",
selectorLabel: "インタラクション状態",
selectorTooltip: "ホバー、フォーカス、押下状態をプレビューして編集",
editingState: "{{state}}状態を編集中",
editingStateTooltip:
"{{state}}状態を編集中 — ここでのスタイルは要素が{{state}}のときのみ適用されます",
hasOverrideIndicator: "このプロパティはこの状態で上書きされています",
reset: "リセット",
resetOverride: "上書きをリセット",
resetOverrideTooltip:
"この状態の上書きを消去してデフォルト値を使用します",
},
},
},
"ko-KR": {
editPanel: {
interactionStates: {
default: "기본값",
hover: "호버",
focus: "포커스",
focusVisible: "포커스 표시",
active: "눌림",
disabled: "비활성화",
selectorLabel: "상호작용 상태",
selectorTooltip: "호버, 포커스, 눌림 상태를 미리보고 편집하세요",
editingState: "{{state}} 상태 편집 중",
editingStateTooltip:
"{{state}} 상태 편집 중 — 여기의 스타일은 요소가 {{state}} 상태일 때만 적용됩니다",
hasOverrideIndicator: "이 속성은 이 상태에서 재정의되었습니다",
reset: "재설정",
resetOverride: "재정의 초기화",
resetOverrideTooltip: "이 상태의 재정의를 지우고 기본값을 사용합니다",
},
},
},
"pt-BR": {
editPanel: {
interactionStates: {
default: "Padrão",
hover: "Hover",
focus: "Foco",
focusVisible: "Foco visível",
active: "Pressionado",
disabled: "Desabilitado",
selectorLabel: "Estado de interação",
selectorTooltip:
"Visualize e edite os estados de hover, foco e pressionado",
editingState: "Editando o estado {{state}}",
editingStateTooltip:
"Editando o estado {{state}} — esses estilos se aplicam somente quando o elemento está em {{state}}",
hasOverrideIndicator: "Esta propriedade está sobrescrita neste estado",
reset: "Redefinir",
resetOverride: "Redefinir substituição",
resetOverrideTooltip:
"Limpa a substituição deste estado e usa o valor padrão",
},
},
},
"hi-IN": {
editPanel: {
interactionStates: {
default: "डिफ़ॉल्ट",
hover: "होवर",
focus: "फ़ोकस",
focusVisible: "फ़ोकस विज़िबल",
active: "प्रेस्ड",
disabled: "डिसेबल्ड",
selectorLabel: "इंटरैक्शन स्थिति",
selectorTooltip: "होवर, फ़ोकस और प्रेस्ड स्थितियों को प्रीव्यू और एडिट करें",
editingState: "{{state}} स्थिति संपादित की जा रही है",
editingStateTooltip:
"{{state}} स्थिति संपादित की जा रही है — यहाँ की styles केवल तब लागू होती हैं जब element {{state}} हो",
hasOverrideIndicator: "यह property इस स्थिति में override की गई है",
reset: "रीसेट करें",
resetOverride: "ओवरराइड रीसेट करें",
resetOverrideTooltip:
"इस स्थिति का override हटाएं और डिफ़ॉल्ट मान उपयोग करें",
},
},
},
"ar-SA": {
editPanel: {
interactionStates: {
default: "افتراضي",
hover: "تحويم",
focus: "تركيز",
focusVisible: "تركيز مرئي",
active: "مضغوط",
disabled: "معطّل",
selectorLabel: "حالة التفاعل",
selectorTooltip: "معاينة وتعديل حالات التحويم والتركيز والضغط",
editingState: "تعديل حالة {{state}}",
editingStateTooltip:
"تعديل حالة {{state}} — تنطبق هذه الأنماط فقط عندما يكون العنصر في حالة {{state}}",
hasOverrideIndicator: "تم تجاوز هذه الخاصية في هذه الحالة",
reset: "إعادة تعيين",
resetOverride: "إعادة تعيين التجاوز",
resetOverrideTooltip: "امسح تجاوز هذه الحالة واستخدم القيمة الافتراضية",
},
},
},
} satisfies Record, PartialMessages>;
// Motion keyframe diamond affordance (per-field ◆ toggle next to
// keyframeable properties), the breakpoint override indicator/reset
// affordance, and the BreakpointBar's own labels (base chip, add-breakpoint
// popover, Desktop/Tablet/Phone presets). zh-TW's translations live
// directly in app/i18n/zh-TW.ts instead, following this file's existing
// zh-TW convention. BreakpointBar.tsx itself is owned by the breakpoints
// build — these keys unblock its existing humanized-fallback strings.
const designMotionAndBreakpointOverrides = {
"zh-CN": {
editPanel: {
motionKeyframe: {
addTooltip: "添加关键帧",
removeTooltip: "移除关键帧",
},
breakpointOverride: {
overriddenTooltip: "已在此断点被覆盖",
overriddenAtTooltip: "已在 {{width}}px 处被覆盖",
reset: "重置覆盖项",
resetShort: "重置",
resetTooltip: "清除此断点的覆盖项并使用基础值",
},
},
designEditor: {
breakpointBar: {
base: "基础",
editBaseWidth: "编辑基础宽度",
addBreakpoint: "添加断点",
remove: "移除断点",
options: "断点选项",
changeWidth: "更改宽度",
customWidth: "自定义宽度",
add: "添加",
showAllBreakpoints: "显示所有断点",
desktop: "桌面端",
tablet: "平板",
phone: "手机",
},
},
},
"es-ES": {
editPanel: {
motionKeyframe: {
addTooltip: "Añadir fotograma clave",
removeTooltip: "Quitar fotograma clave",
},
breakpointOverride: {
overriddenTooltip: "Sobrescrito en este punto de quiebre",
overriddenAtTooltip: "Sobrescrito a {{width}}px",
reset: "Restablecer sobrescritura",
resetShort: "Restablecer",
resetTooltip:
"Borra la sobrescritura de este punto de quiebre y usa el valor base",
},
},
designEditor: {
breakpointBar: {
base: "Base",
editBaseWidth: "Editar ancho base",
addBreakpoint: "Añadir punto de quiebre",
remove: "Quitar punto de quiebre",
options: "Opciones del punto de quiebre",
changeWidth: "Cambiar ancho",
customWidth: "Ancho personalizado",
add: "Añadir",
showAllBreakpoints: "Mostrar todos los puntos de quiebre",
desktop: "Escritorio",
tablet: "Tableta",
phone: "Móvil",
},
},
},
"fr-FR": {
editPanel: {
motionKeyframe: {
addTooltip: "Ajouter une image clé",
removeTooltip: "Supprimer l'image clé",
},
breakpointOverride: {
overriddenTooltip: "Remplacé à ce point de rupture",
overriddenAtTooltip: "Remplacé à {{width}}px",
reset: "Réinitialiser la substitution",
resetShort: "Réinitialiser",
resetTooltip:
"Efface la substitution de ce point de rupture et utilise la valeur de base",
},
},
designEditor: {
breakpointBar: {
base: "Base",
editBaseWidth: "Modifier la largeur de base",
addBreakpoint: "Ajouter un point de rupture",
remove: "Supprimer le point de rupture",
options: "Options du point de rupture",
changeWidth: "Modifier la largeur",
customWidth: "Largeur personnalisée",
add: "Ajouter",
showAllBreakpoints: "Afficher tous les points de rupture",
desktop: "Ordinateur",
tablet: "Tablette",
phone: "Mobile",
},
},
},
"de-DE": {
editPanel: {
motionKeyframe: {
addTooltip: "Keyframe hinzufügen",
removeTooltip: "Keyframe entfernen",
},
breakpointOverride: {
overriddenTooltip: "Bei diesem Breakpoint überschrieben",
overriddenAtTooltip: "Bei {{width}}px überschrieben",
reset: "Überschreibung zurücksetzen",
resetShort: "Zurücksetzen",
resetTooltip:
"Überschreibung dieses Breakpoints löschen und Basiswert verwenden",
},
},
designEditor: {
breakpointBar: {
base: "Basis",
editBaseWidth: "Basisbreite bearbeiten",
addBreakpoint: "Breakpoint hinzufügen",
remove: "Breakpoint entfernen",
options: "Breakpoint-Optionen",
changeWidth: "Breite ändern",
customWidth: "Benutzerdefinierte Breite",
add: "Hinzufügen",
showAllBreakpoints: "Alle Breakpoints anzeigen",
desktop: "Desktop",
tablet: "Tablet",
phone: "Smartphone",
},
},
},
"ja-JP": {
editPanel: {
motionKeyframe: {
addTooltip: "キーフレームを追加",
removeTooltip: "キーフレームを削除",
},
breakpointOverride: {
overriddenTooltip: "このブレークポイントで上書きされています",
overriddenAtTooltip: "{{width}}px で上書きされています",
reset: "上書きをリセット",
resetShort: "リセット",
resetTooltip:
"このブレークポイントの上書きを消去してベース値を使用します",
},
},
designEditor: {
breakpointBar: {
base: "ベース",
editBaseWidth: "ベース幅を編集",
addBreakpoint: "ブレークポイントを追加",
remove: "ブレークポイントを削除",
options: "ブレークポイントのオプション",
changeWidth: "幅を変更",
customWidth: "カスタム幅",
add: "追加",
showAllBreakpoints: "すべてのブレークポイントを表示",
desktop: "デスクトップ",
tablet: "タブレット",
phone: "スマートフォン",
},
},
},
"ko-KR": {
editPanel: {
motionKeyframe: {
addTooltip: "키프레임 추가",
removeTooltip: "키프레임 제거",
},
breakpointOverride: {
overriddenTooltip: "이 브레이크포인트에서 재정의됨",
overriddenAtTooltip: "{{width}}px에서 재정의됨",
reset: "재정의 초기화",
resetShort: "재설정",
resetTooltip: "이 브레이크포인트의 재정의를 지우고 기본값을 사용합니다",
},
},
designEditor: {
breakpointBar: {
base: "기본",
editBaseWidth: "기본 너비 편집",
addBreakpoint: "브레이크포인트 추가",
remove: "브레이크포인트 제거",
options: "브레이크포인트 옵션",
changeWidth: "너비 변경",
customWidth: "사용자 지정 너비",
add: "추가",
showAllBreakpoints: "모든 브레이크포인트 표시",
desktop: "데스크톱",
tablet: "태블릿",
phone: "휴대폰",
},
},
},
"pt-BR": {
editPanel: {
motionKeyframe: {
addTooltip: "Adicionar quadro-chave",
removeTooltip: "Remover quadro-chave",
},
breakpointOverride: {
overriddenTooltip: "Sobrescrito neste breakpoint",
overriddenAtTooltip: "Sobrescrito em {{width}}px",
reset: "Redefinir substituição",
resetShort: "Redefinir",
resetTooltip:
"Limpa a substituição deste breakpoint e usa o valor base",
},
},
designEditor: {
breakpointBar: {
base: "Base",
editBaseWidth: "Editar largura base",
addBreakpoint: "Adicionar breakpoint",
remove: "Remover breakpoint",
options: "Opções do breakpoint",
changeWidth: "Alterar largura",
customWidth: "Largura personalizada",
add: "Adicionar",
showAllBreakpoints: "Mostrar todos os breakpoints",
desktop: "Desktop",
tablet: "Tablet",
phone: "Celular",
},
},
},
"hi-IN": {
editPanel: {
motionKeyframe: {
addTooltip: "कीफ़्रेम जोड़ें",
removeTooltip: "कीफ़्रेम हटाएं",
},
breakpointOverride: {
overriddenTooltip: "इस ब्रेकपॉइंट पर override किया गया",
overriddenAtTooltip: "{{width}}px पर override किया गया",
reset: "ओवरराइड रीसेट करें",
resetShort: "रीसेट करें",
resetTooltip: "इस ब्रेकपॉइंट का override हटाएं और आधार मान उपयोग करें",
},
},
designEditor: {
breakpointBar: {
base: "आधार",
editBaseWidth: "आधार चौड़ाई संपादित करें",
addBreakpoint: "ब्रेकपॉइंट जोड़ें",
remove: "ब्रेकपॉइंट हटाएं",
options: "ब्रेकपॉइंट विकल्प",
changeWidth: "चौड़ाई बदलें",
customWidth: "कस्टम चौड़ाई",
add: "जोड़ें",
showAllBreakpoints: "सभी ब्रेकपॉइंट दिखाएं",
desktop: "डेस्कटॉप",
tablet: "टैबलेट",
phone: "फ़ोन",
},
},
},
"ar-SA": {
editPanel: {
motionKeyframe: {
addTooltip: "إضافة إطار مفتاحي",
removeTooltip: "إزالة الإطار المفتاحي",
},
breakpointOverride: {
overriddenTooltip: "تم تجاوزه عند نقطة التوقف هذه",
overriddenAtTooltip: "تم تجاوزه عند {{width}}px",
reset: "إعادة تعيين التجاوز",
resetShort: "إعادة تعيين",
resetTooltip: "امسح تجاوز نقطة التوقف هذه واستخدم القيمة الأساسية",
},
},
designEditor: {
breakpointBar: {
base: "أساسي",
editBaseWidth: "تعديل العرض الأساسي",
addBreakpoint: "إضافة نقطة توقف",
remove: "إزالة نقطة التوقف",
options: "خيارات نقطة التوقف",
changeWidth: "تغيير العرض",
customWidth: "عرض مخصص",
add: "إضافة",
showAllBreakpoints: "إظهار جميع نقاط التوقف",
desktop: "سطح المكتب",
tablet: "جهاز لوحي",
phone: "هاتف",
},
},
},
} satisfies Record, PartialMessages>;
// Runtime-layer identity, prompt/comment feedback, and localhost bridge copy.
// zh-TW lives in app/i18n/zh-TW.ts with the rest of that locale's catalog.
const designRuntimeIdentityAndBridgeOverrides = {
"zh-CN": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"React 源码锚点仍在加载中。请等本地应用完成渲染后再试一次。",
},
},
layersPanel: { dragGhostCount: "{{count}} 个图层" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"多次尝试后,实时编辑器桥接器仍未确认连接。",
connectionNotConfirmed:
"实时编辑器桥接器未确认连接。本地开发服务器是否仍在运行?",
},
},
promptDialog: {
failedToSubmitPrompt: "无法提交提示",
skipPrompt: "跳过提示",
},
visualEditor: {
queuedCommentsDiscarded:
"离开此视图时,{{count}} 个未发送的评论草稿已被丢弃。",
staleAnchorDetail: "在画布上已找不到原始元素。",
},
},
"es-ES": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"Los anclajes al código fuente de React aún se están cargando. Vuelve a intentarlo cuando la aplicación local termine de renderizarse.",
},
},
layersPanel: { dragGhostCount: "{{count}} capas" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"El puente del editor en vivo no confirmó la conexión tras varios intentos.",
connectionNotConfirmed:
"El puente del editor en vivo no confirmó la conexión. ¿Sigue ejecutándose el servidor de desarrollo local?",
},
},
promptDialog: {
failedToSubmitPrompt: "No se pudo enviar el prompt",
skipPrompt: "Omitir prompt",
},
visualEditor: {
queuedCommentsDiscarded:
"Se descartaron {{count}} borradores de comentarios sin enviar al salir de esta vista.",
staleAnchorDetail:
"Ya no se encuentra el elemento original en el lienzo.",
},
},
"fr-FR": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"Les ancres vers le code source React sont encore en cours de chargement. Réessayez une fois le rendu de l’application locale terminé.",
},
},
layersPanel: { dragGhostCount: "{{count}} calques" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"Le pont de l’éditeur en direct n’a pas confirmé la connexion après plusieurs tentatives.",
connectionNotConfirmed:
"Le pont de l’éditeur en direct n’a pas confirmé la connexion. Le serveur de développement local est-il toujours en cours d’exécution ?",
},
},
promptDialog: {
failedToSubmitPrompt: "Impossible d’envoyer le prompt",
skipPrompt: "Ignorer le prompt",
},
visualEditor: {
queuedCommentsDiscarded:
"Vous avez quitté cette vue : {{count}} brouillons de commentaires non envoyés ont été supprimés.",
staleAnchorDetail: "L’élément d’origine est introuvable sur le canevas.",
},
},
"de-DE": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"Die React-Quellcodeanker werden noch geladen. Versuche es erneut, sobald die lokale App vollständig gerendert wurde.",
},
},
layersPanel: { dragGhostCount: "{{count}} Ebenen" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"Die Live-Editor-Bridge hat die Verbindung auch nach mehreren Versuchen nicht bestätigt.",
connectionNotConfirmed:
"Die Live-Editor-Bridge hat die Verbindung nicht bestätigt. Läuft der lokale Entwicklungsserver noch?",
},
},
promptDialog: {
failedToSubmitPrompt: "Prompt konnte nicht gesendet werden",
skipPrompt: "Prompt überspringen",
},
visualEditor: {
queuedCommentsDiscarded:
"Beim Verlassen dieser Ansicht wurden {{count}} nicht gesendete Kommentarentwürfe verworfen.",
staleAnchorDetail:
"Das ursprüngliche Element wurde auf der Arbeitsfläche nicht mehr gefunden.",
},
},
"ja-JP": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"React ソースのアンカーを読み込み中です。ローカルアプリのレンダリングが完了してからもう一度お試しください。",
},
},
layersPanel: { dragGhostCount: "{{count}} 個のレイヤー" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"数回試行しましたが、ライブエディターブリッジから確認応答がありませんでした。",
connectionNotConfirmed:
"ライブエディターブリッジが接続を確認できませんでした。ローカル開発サーバーはまだ実行中ですか?",
},
},
promptDialog: {
failedToSubmitPrompt: "プロンプトを送信できませんでした",
skipPrompt: "プロンプトをスキップ",
},
visualEditor: {
queuedCommentsDiscarded:
"このビューを離れたため、未送信のコメント下書き {{count}} 件が破棄されました。",
staleAnchorDetail: "元の要素がキャンバス上に見つかりません。",
},
},
"ko-KR": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"React 소스 앵커를 아직 불러오는 중입니다. 로컬 앱의 렌더링이 끝난 후 다시 시도하세요.",
},
},
layersPanel: { dragGhostCount: "레이어 {{count}}개" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"여러 번 시도했지만 라이브 편집기 브리지가 연결을 확인하지 못했습니다.",
connectionNotConfirmed:
"라이브 편집기 브리지가 연결을 확인하지 못했습니다. 로컬 개발 서버가 아직 실행 중인가요?",
},
},
promptDialog: {
failedToSubmitPrompt: "프롬프트를 제출하지 못했습니다",
skipPrompt: "프롬프트 건너뛰기",
},
visualEditor: {
queuedCommentsDiscarded:
"이 보기를 벗어나면서 보내지 않은 댓글 초안 {{count}}개가 삭제되었습니다.",
staleAnchorDetail: "원래 요소를 캔버스에서 더 이상 찾을 수 없습니다.",
},
},
"pt-BR": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"Os vínculos ao código-fonte do React ainda estão sendo carregados. Tente novamente quando o app local terminar de renderizar.",
},
},
layersPanel: { dragGhostCount: "{{count}} camadas" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"Mesmo após várias tentativas, a ponte do editor em tempo real não confirmou a conexão.",
connectionNotConfirmed:
"A ponte do editor em tempo real não confirmou a conexão. O servidor de desenvolvimento local ainda está em execução?",
},
},
promptDialog: {
failedToSubmitPrompt: "Não foi possível enviar o prompt",
skipPrompt: "Pular prompt",
},
visualEditor: {
queuedCommentsDiscarded:
"{{count}} rascunhos de comentários não enviados foram descartados quando você saiu desta visualização.",
staleAnchorDetail:
"O elemento original não foi mais encontrado na tela de design.",
},
},
"hi-IN": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"React सोर्स एंकर अभी लोड हो रहे हैं। लोकल ऐप की रेंडरिंग पूरी होने के बाद फिर से कोशिश करें।",
},
},
layersPanel: { dragGhostCount: "{{count}} लेयर" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"कई कोशिशों के बाद भी लाइव एडिटर ब्रिज ने कनेक्शन की पुष्टि नहीं की।",
connectionNotConfirmed:
"लाइव एडिटर ब्रिज ने कनेक्शन की पुष्टि नहीं की। क्या लोकल डेवलपमेंट सर्वर अभी भी चल रहा है?",
},
},
promptDialog: {
failedToSubmitPrompt: "प्रॉम्प्ट सबमिट नहीं हो सका",
skipPrompt: "प्रॉम्प्ट छोड़ें",
},
visualEditor: {
queuedCommentsDiscarded:
"इस व्यू से बाहर निकलने पर {{count}} नहीं भेजे गए कमेंट ड्राफ़्ट हटा दिए गए।",
staleAnchorDetail: "मूल एलिमेंट अब कैनवास पर नहीं मिला।",
},
},
"ar-SA": {
designEditor: {
toasts: {
reactSourceAnchorsLoading:
"لا تزال نقاط ارتساء مصدر React قيد التحميل. أعد المحاولة بعد اكتمال عرض التطبيق المحلي.",
},
},
layersPanel: { dragGhostCount: "{{count}} طبقات" },
designCanvas: {
localBridge: {
confirmationRetryExhausted:
"لم يؤكد جسر المحرر المباشر الاتصال بعد عدة محاولات.",
connectionNotConfirmed:
"لم يؤكد جسر المحرر المباشر الاتصال. هل لا يزال خادم التطوير المحلي قيد التشغيل؟",
},
},
promptDialog: {
failedToSubmitPrompt: "تعذر إرسال المطالبة",
skipPrompt: "تخطي المطالبة",
},
visualEditor: {
queuedCommentsDiscarded:
"تم تجاهل {{count}} مسودة تعليق غير مرسلة عند مغادرة هذا العرض.",
staleAnchorDetail: "لم يعد العنصر الأصلي موجودًا على لوحة الرسم.",
},
},
} satisfies Record, PartialMessages>;
// zh-TW strings for designEditor.componentInstances live in app/i18n/zh-TW.ts
// (the full zh-TW locale file), not here.
const designComponentInstanceOverrides = {
"zh-CN": {
designEditor: {
componentInstances: {
selectLayer: "选择图层",
goToMain: "转到主组件",
swap: "交换实例",
detach: "分离实例",
searchComponents: "搜索组件…",
loading: "正在加载…",
noOtherComponents: "未找到其他组件",
goToMainUnavailable: "目前无法转到主组件。",
onlyKnownInstance: "这是此组件唯一已知的实例。",
resolveMainFailed: "无法解析主组件。",
detachFailed: "无法分离此实例。",
detached: "实例已分离。",
swapFailed: "无法交换此实例。",
swappedFor: "已交换为“{{name}}”。",
openPanelNudge: "请使用“组件”面板中的“交换实例”选择器。",
openPanelFailed: "无法打开组件面板。",
},
},
},
"es-ES": {
designEditor: {
componentInstances: {
selectLayer: "Seleccionar capa",
goToMain: "Ir al componente principal",
swap: "Intercambiar instancia",
detach: "Desvincular instancia",
searchComponents: "Buscar componentes…",
loading: "Cargando…",
noOtherComponents: "No se encontraron otros componentes",
goToMainUnavailable:
"Ir al componente principal todavía no está disponible.",
onlyKnownInstance:
"Esta es la única instancia conocida de este componente.",
resolveMainFailed: "No se pudo resolver el componente principal.",
detachFailed: "No se pudo desvincular esta instancia.",
detached: "Instancia desvinculada.",
swapFailed: "No se pudo intercambiar esta instancia.",
swappedFor: 'Se intercambió por "{{name}}".',
openPanelNudge:
"Usa el selector Intercambiar instancia del panel Componente.",
openPanelFailed: "No se pudo abrir el panel Componente.",
},
},
},
"fr-FR": {
designEditor: {
componentInstances: {
selectLayer: "Sélectionner un calque",
goToMain: "Accéder au composant principal",
swap: "Permuter l’instance",
detach: "Détacher l’instance",
searchComponents: "Rechercher des composants…",
loading: "Chargement…",
noOtherComponents: "Aucun autre composant trouvé",
goToMainUnavailable:
"L’accès au composant principal n’est pas encore disponible.",
onlyKnownInstance:
"Il s’agit de la seule instance connue de ce composant.",
resolveMainFailed: "Impossible de résoudre le composant principal.",
detachFailed: "Impossible de détacher cette instance.",
detached: "Instance détachée.",
swapFailed: "Impossible de permuter cette instance.",
swappedFor: "Instance remplacée par « {{name}} ».",
openPanelNudge:
"Utilisez le sélecteur Permuter l’instance dans le panneau Composant.",
openPanelFailed: "Impossible d’ouvrir le panneau Composant.",
},
},
},
"de-DE": {
designEditor: {
componentInstances: {
selectLayer: "Ebene auswählen",
goToMain: "Zur Hauptkomponente",
swap: "Instanz austauschen",
detach: "Instanz lösen",
searchComponents: "Komponenten suchen…",
loading: "Wird geladen…",
noOtherComponents: "Keine weiteren Komponenten gefunden",
goToMainUnavailable: "Die Hauptkomponente ist noch nicht verfügbar.",
onlyKnownInstance:
"Dies ist die einzige bekannte Instanz dieser Komponente.",
resolveMainFailed: "Die Hauptkomponente konnte nicht ermittelt werden.",
detachFailed: "Diese Instanz konnte nicht gelöst werden.",
detached: "Instanz gelöst.",
swapFailed: "Diese Instanz konnte nicht ausgetauscht werden.",
swappedFor: "Durch „{{name}}“ ersetzt.",
openPanelNudge:
"Verwende die Auswahl „Instanz austauschen“ im Komponentenbereich.",
openPanelFailed: "Der Komponentenbereich konnte nicht geöffnet werden.",
},
},
},
"ja-JP": {
designEditor: {
componentInstances: {
selectLayer: "レイヤーを選択",
goToMain: "メインコンポーネントに移動",
swap: "インスタンスを入れ替え",
detach: "インスタンスを切り離す",
searchComponents: "コンポーネントを検索…",
loading: "読み込み中…",
noOtherComponents: "他のコンポーネントが見つかりません",
goToMainUnavailable:
"メインコンポーネントへの移動はまだ利用できません。",
onlyKnownInstance:
"これはこのコンポーネントで確認できる唯一のインスタンスです。",
resolveMainFailed: "メインコンポーネントを特定できませんでした。",
detachFailed: "このインスタンスを切り離せませんでした。",
detached: "インスタンスを切り離しました。",
swapFailed: "このインスタンスを入れ替えられませんでした。",
swappedFor: "「{{name}}」に入れ替えました。",
openPanelNudge:
"コンポーネントパネルの「インスタンスを入れ替え」を使用してください。",
openPanelFailed: "コンポーネントパネルを開けませんでした。",
},
},
},
"ko-KR": {
designEditor: {
componentInstances: {
selectLayer: "레이어 선택",
goToMain: "메인 컴포넌트로 이동",
swap: "인스턴스 교체",
detach: "인스턴스 분리",
searchComponents: "컴포넌트 검색…",
loading: "불러오는 중…",
noOtherComponents: "다른 컴포넌트를 찾을 수 없습니다",
goToMainUnavailable: "메인 컴포넌트로 이동은 아직 사용할 수 없습니다.",
onlyKnownInstance: "이 컴포넌트에서 확인된 유일한 인스턴스입니다.",
resolveMainFailed: "메인 컴포넌트를 확인할 수 없습니다.",
detachFailed: "이 인스턴스를 분리할 수 없습니다.",
detached: "인스턴스를 분리했습니다.",
swapFailed: "이 인스턴스를 교체할 수 없습니다.",
swappedFor: '"{{name}}"(으)로 교체했습니다.',
openPanelNudge: "컴포넌트 패널의 인스턴스 교체 선택기를 사용하세요.",
openPanelFailed: "컴포넌트 패널을 열 수 없습니다.",
},
},
},
"pt-BR": {
designEditor: {
componentInstances: {
selectLayer: "Selecionar camada",
goToMain: "Ir para o componente principal",
swap: "Trocar instância",
detach: "Desvincular instância",
searchComponents: "Buscar componentes…",
loading: "Carregando…",
noOtherComponents: "Nenhum outro componente encontrado",
goToMainUnavailable:
"Ir para o componente principal ainda não está disponível.",
onlyKnownInstance:
"Esta é a única instância conhecida deste componente.",
resolveMainFailed: "Não foi possível encontrar o componente principal.",
detachFailed: "Não foi possível desvincular esta instância.",
detached: "Instância desvinculada.",
swapFailed: "Não foi possível trocar esta instância.",
swappedFor: 'Trocada por "{{name}}".',
openPanelNudge: "Use o seletor Trocar instância no painel Componente.",
openPanelFailed: "Não foi possível abrir o painel Componente.",
},
},
},
"hi-IN": {
designEditor: {
componentInstances: {
selectLayer: "लेयर चुनें",
goToMain: "मुख्य कॉम्पोनेंट पर जाएं",
swap: "इंस्टेंस बदलें",
detach: "इंस्टेंस अलग करें",
searchComponents: "कॉम्पोनेंट खोजें…",
loading: "लोड हो रहा है…",
noOtherComponents: "कोई अन्य कॉम्पोनेंट नहीं मिला",
goToMainUnavailable: "मुख्य कॉम्पोनेंट पर जाना अभी उपलब्ध नहीं है।",
onlyKnownInstance: "यह इस कॉम्पोनेंट का एकमात्र ज्ञात इंस्टेंस है।",
resolveMainFailed: "मुख्य कॉम्पोनेंट का पता नहीं लगाया जा सका।",
detachFailed: "इस इंस्टेंस को अलग नहीं किया जा सका।",
detached: "इंस्टेंस अलग कर दिया गया।",
swapFailed: "इस इंस्टेंस को बदला नहीं जा सका।",
swappedFor: '"{{name}}" से बदल दिया गया।',
openPanelNudge: "कॉम्पोनेंट पैनल में इंस्टेंस बदलें चयनकर्ता का उपयोग करें।",
openPanelFailed: "कॉम्पोनेंट पैनल नहीं खोला जा सका।",
},
},
},
"ar-SA": {
designEditor: {
componentInstances: {
selectLayer: "تحديد طبقة",
goToMain: "الانتقال إلى المكوّن الرئيسي",
swap: "تبديل النسخة",
detach: "فصل النسخة",
searchComponents: "البحث عن مكوّنات…",
loading: "جارٍ التحميل…",
noOtherComponents: "لم يتم العثور على مكوّنات أخرى",
goToMainUnavailable: "الانتقال إلى المكوّن الرئيسي غير متاح بعد.",
onlyKnownInstance: "هذه هي النسخة الوحيدة المعروفة من هذا المكوّن.",
resolveMainFailed: "تعذر تحديد المكوّن الرئيسي.",
detachFailed: "تعذر فصل هذه النسخة.",
detached: "تم فصل النسخة.",
swapFailed: "تعذر تبديل هذه النسخة.",
swappedFor: 'تم التبديل إلى "{{name}}".',
openPanelNudge: "استخدم منتقي تبديل النسخة في لوحة المكوّن.",
openPanelFailed: "تعذر فتح لوحة المكوّن.",
},
},
},
} satisfies Record, PartialMessages>;
// zh-TW strings for designEditor.makeItRealCard / componentProps /
// componentSource live in app/i18n/zh-TW.ts (the full zh-TW locale file),
// not here.
const designComponentSourceOverrides = {
"zh-CN": {
designEditor: {
makeItRealCard: {
open: "打开",
choose: "选择",
connect: "连接",
generating: "生成中",
generate: "生成",
migrationFailed: "迁移失败,请重试。",
},
componentProps: {
alpineTooComplexToEdit:
"无法就地安全编辑此属性——此组件的 Alpine 状态过于复杂。请改为编辑源代码。",
label: "属性",
},
componentSource: {
editSource: "编辑组件源代码",
needsConnectedApp: "源代码跳转需要连接应用",
},
},
},
"es-ES": {
designEditor: {
makeItRealCard: {
open: "Abrir",
choose: "Elegir",
connect: "Conectar",
generating: "Generando",
generate: "Generar",
migrationFailed: "Error en la migración. Inténtalo de nuevo.",
},
componentProps: {
alpineTooComplexToEdit:
"No se puede editar esta propiedad de forma segura en línea: el estado de Alpine de este componente es demasiado complejo. Edita el código fuente en su lugar.",
label: "Propiedades",
},
componentSource: {
editSource: "Editar código fuente del componente",
needsConnectedApp: "Saltar al código fuente requiere una app conectada",
},
},
},
"fr-FR": {
designEditor: {
makeItRealCard: {
open: "Ouvrir",
choose: "Choisir",
connect: "Connecter",
generating: "Génération en cours",
generate: "Générer",
migrationFailed: "Échec de la migration. Veuillez réessayer.",
},
componentProps: {
alpineTooComplexToEdit:
"Impossible de modifier cette propriété en toute sécurité en ligne — l’état Alpine de ce composant est trop complexe. Modifiez plutôt le code source.",
label: "Propriétés",
},
componentSource: {
editSource: "Modifier le code source du composant",
needsConnectedApp:
"L’accès au code source nécessite une application connectée",
},
},
},
"de-DE": {
designEditor: {
makeItRealCard: {
open: "Öffnen",
choose: "Auswählen",
connect: "Verbinden",
generating: "Wird generiert",
generate: "Generieren",
migrationFailed: "Migration fehlgeschlagen. Bitte versuche es erneut.",
},
componentProps: {
alpineTooComplexToEdit:
"Diese Eigenschaft kann nicht sicher inline bearbeitet werden – der Alpine-Zustand dieser Komponente ist zu komplex. Bearbeite stattdessen den Quellcode.",
label: "Eigenschaften",
},
componentSource: {
editSource: "Komponentenquelle bearbeiten",
needsConnectedApp:
"Für den Sprung zur Quelle ist eine verbundene App erforderlich",
},
},
},
"ja-JP": {
designEditor: {
makeItRealCard: {
open: "開く",
choose: "選択",
connect: "接続",
generating: "生成中",
generate: "生成",
migrationFailed: "移行に失敗しました。もう一度お試しください。",
},
componentProps: {
alpineTooComplexToEdit:
"このプロパティはインラインで安全に編集できません — このコンポーネントの Alpine の状態が複雑すぎます。代わりにソースを編集してください。",
label: "プロパティ",
},
componentSource: {
editSource: "コンポーネントのソースを編集",
needsConnectedApp: "ソースへのジャンプには接続済みアプリが必要です",
},
},
},
"ko-KR": {
designEditor: {
makeItRealCard: {
open: "열기",
choose: "선택",
connect: "연결",
generating: "생성 중",
generate: "생성",
migrationFailed: "마이그레이션에 실패했습니다. 다시 시도해 주세요.",
},
componentProps: {
alpineTooComplexToEdit:
"이 속성은 인라인으로 안전하게 편집할 수 없습니다 — 이 컴포넌트의 Alpine 상태가 너무 복잡합니다. 대신 소스를 편집하세요.",
label: "속성",
},
componentSource: {
editSource: "컴포넌트 소스 편집",
needsConnectedApp: "소스로 이동하려면 연결된 앱이 필요합니다",
},
},
},
"pt-BR": {
designEditor: {
makeItRealCard: {
open: "Abrir",
choose: "Escolher",
connect: "Conectar",
generating: "Gerando",
generate: "Gerar",
migrationFailed: "Falha na migração. Tente novamente.",
},
componentProps: {
alpineTooComplexToEdit:
"Não é possível editar esta propriedade com segurança embutida — o estado Alpine deste componente é complexo demais. Edite o código-fonte em vez disso.",
label: "Propriedades",
},
componentSource: {
editSource: "Editar código-fonte do componente",
needsConnectedApp:
"Ir para o código-fonte exige um aplicativo conectado",
},
},
},
"hi-IN": {
designEditor: {
makeItRealCard: {
open: "खोलें",
choose: "चुनें",
connect: "कनेक्ट करें",
generating: "जनरेट हो रहा है",
generate: "जनरेट करें",
migrationFailed: "माइग्रेशन विफल रहा। कृपया फिर से कोशिश करें।",
},
componentProps: {
alpineTooComplexToEdit:
"इस प्रॉप को इनलाइन सुरक्षित रूप से संपादित नहीं किया जा सकता — इस कॉम्पोनेंट की Alpine स्थिति बहुत जटिल है। इसके बजाय सोर्स संपादित करें।",
label: "प्रॉप्स",
},
componentSource: {
editSource: "कॉम्पोनेंट सोर्स संपादित करें",
needsConnectedApp: "सोर्स पर जाने के लिए कनेक्टेड ऐप आवश्यक है",
},
},
},
"ar-SA": {
designEditor: {
makeItRealCard: {
open: "فتح",
choose: "اختيار",
connect: "ربط",
generating: "جارٍ الإنشاء",
generate: "إنشاء",
migrationFailed: "فشل الترحيل. يُرجى المحاولة مرة أخرى.",
},
componentProps: {
alpineTooComplexToEdit:
"تعذّر تعديل هذه الخاصية مضمّنًا بأمان — حالة Alpine لهذا المكوّن معقّدة جدًا. عدّل الشيفرة المصدرية بدلاً من ذلك.",
label: "الخصائص",
},
componentSource: {
editSource: "تعديل الشيفرة المصدرية للمكوّن",
needsConnectedApp: "الانتقال إلى المصدر يتطلب تطبيقًا متصلًا",
},
},
},
} satisfies Record, PartialMessages>;
export const messagesByLocale = {
"en-US": enUS,
"zh-TW": mergeLocalizedMessages(
"zh-TW",
mergePartialMessages(
zhTW,
designLeftRailOverrides["zh-TW"],
designTokenImportOverrides["zh-TW"],
designImportOverrides["zh-TW"],
designFigmaConnectionOverrides["zh-TW"],
designModeFeatureOverrides["zh-TW"],
designCanvasFeatureOverrides["zh-TW"],
designShapeToolOverrides["zh-TW"],
designPublicShareOverrides["zh-TW"],
designVisualEditOverrides["zh-TW"],
designTemplateFeatureOverrides["zh-TW"],
designPendingVisualStyleOverrides["zh-TW"],
designAddLocalhostScreenOverrides["zh-TW"],
designFillStylesComingSoonOverrides["zh-TW"],
breakpointBarOverrides["zh-TW"],
motionDockOverrides["zh-TW"],
),
),
"zh-CN": mergeLocalizedMessages(
"zh-CN",
mergePartialMessages(
designLocaleOverrides["zh-CN"],
designRawLiteralOverrides["zh-CN"],
designExactEnglishOverrides["zh-CN"],
designLeftRailOverrides["zh-CN"],
designTokenImportOverrides["zh-CN"],
designImportOverrides["zh-CN"],
designFigmaConnectionOverrides["zh-CN"],
designModeFeatureOverrides["zh-CN"],
designCanvasFeatureOverrides["zh-CN"],
designShapeToolOverrides["zh-CN"],
designPublicShareOverrides["zh-CN"],
designVisualEditOverrides["zh-CN"],
designTemplateFeatureOverrides["zh-CN"],
designPendingVisualStyleOverrides["zh-CN"],
designAddLocalhostScreenOverrides["zh-CN"],
designFillStylesComingSoonOverrides["zh-CN"],
designFramePresetsOverrides["zh-CN"],
designAlignmentOverrides["zh-CN"],
designShaderAndRotationOverrides["zh-CN"],
designInteractionStatesOverrides["zh-CN"],
designMotionAndBreakpointOverrides["zh-CN"],
breakpointBarOverrides["zh-CN"],
motionDockOverrides["zh-CN"],
designRuntimeIdentityAndBridgeOverrides["zh-CN"],
designComponentInstanceOverrides["zh-CN"],
designComponentSourceOverrides["zh-CN"],
{
root: {
commandActions: "操作",
commandSearch: "搜索",
commandAppearance: "外观",
openAgent: "打开代理",
toggleTheme: "切换主题",
},
navigation: {
brand: "Design",
designs: "设计",
templates: "模板",
designSystems: "设计系统",
setupDesignSystem: "设置设计系统",
agent: "代理",
settings: "设置",
openNavigation: "打开导航",
expandSidebar: "展开侧边栏",
collapseSidebar: "收起侧边栏",
},
settings: {
agentTitle: "管理代理",
agentDescription:
"管理代理的模型、API 密钥、自动化、语音和其他控制项。",
openAgentSettings: "管理代理",
languageTitle: "语言",
languageDescription: "选择 Design 的界面语言。",
languageLabel: "界面语言",
},
designEditor: {
toasts: {
tweakConflict: "微调设置已在其他位置更改。请刷新设计后重试。",
tweakSaveNotDurable: "微调设置尚未保存。请保持此标签页打开并重试。",
},
},
pages: {
presentEmpty: "没有可演示的内容",
presentBackToEditor: "返回编辑器",
teamCreateOrgDescription: "设置团队,与同事共享设计。",
},
chat: {
emptyState: "描述要创建的设计",
suggestionLandingPage: "为我的初创公司设计落地页",
suggestionBrandMatch: "让它匹配我们的品牌",
suggestionMobile: "添加移动端版本",
},
},
),
),
"es-ES": mergeLocalizedMessages(
"es-ES",
mergePartialMessages(
designLocaleOverrides["es-ES"],
designRawLiteralOverrides["es-ES"],
designExactEnglishOverrides["es-ES"],
designLeftRailOverrides["es-ES"],
designTokenImportOverrides["es-ES"],
designImportOverrides["es-ES"],
designFigmaConnectionOverrides["es-ES"],
designModeFeatureOverrides["es-ES"],
designCanvasFeatureOverrides["es-ES"],
designShapeToolOverrides["es-ES"],
designPublicShareOverrides["es-ES"],
designVisualEditOverrides["es-ES"],
designTemplateFeatureOverrides["es-ES"],
designPendingVisualStyleOverrides["es-ES"],
designAddLocalhostScreenOverrides["es-ES"],
designFillStylesComingSoonOverrides["es-ES"],
designFramePresetsOverrides["es-ES"],
designAlignmentOverrides["es-ES"],
designShaderAndRotationOverrides["es-ES"],
designInteractionStatesOverrides["es-ES"],
designMotionAndBreakpointOverrides["es-ES"],
breakpointBarOverrides["es-ES"],
motionDockOverrides["es-ES"],
designRuntimeIdentityAndBridgeOverrides["es-ES"],
designComponentInstanceOverrides["es-ES"],
designComponentSourceOverrides["es-ES"],
{
root: {
commandActions: "Acciones",
commandSearch: "Buscar",
commandAppearance: "Apariencia",
openAgent: "Abrir agente",
toggleTheme: "Cambiar tema",
},
navigation: {
designs: "Diseños",
templates: "Plantillas",
designSystems: "Sistemas de diseño",
setupDesignSystem: "Configurar sistema de diseño",
agent: "Agente",
settings: "Ajustes",
openNavigation: "Abrir navegación",
expandSidebar: "Expandir barra lateral",
collapseSidebar: "Contraer barra lateral",
},
settings: {
agentTitle: "Gestionar agente",
agentDescription:
"Gestiona el modelo del agente, claves API, automatizaciones, voz y otros controles.",
openAgentSettings: "Gestionar agente",
languageTitle: "Idioma",
languageDescription: "Elige el idioma de la interfaz de Design.",
languageLabel: "Idioma de la interfaz",
},
designEditor: {
toasts: {
tweakConflict:
"Los ajustes cambiaron en otro lugar. Actualiza el diseño antes de intentarlo de nuevo.",
tweakSaveNotDurable:
"Los ajustes aún no se han guardado. Mantén esta pestaña abierta e inténtalo de nuevo.",
},
},
pages: {
presentEmpty: "No hay contenido para presentar",
presentBackToEditor: "Volver al editor",
teamCreateOrgDescription:
"Configura un equipo para compartir diseños con tus compañeros.",
},
chat: {
emptyState: "Describe el diseño que quieres crear",
suggestionLandingPage: "Diseña una landing page para mi startup",
suggestionBrandMatch: "Haz que coincida con nuestra marca",
suggestionMobile: "Añade una versión móvil",
},
},
),
),
"fr-FR": mergeLocalizedMessages(
"fr-FR",
mergePartialMessages(
designLocaleOverrides["fr-FR"],
designRawLiteralOverrides["fr-FR"],
designExactEnglishOverrides["fr-FR"],
designLeftRailOverrides["fr-FR"],
designTokenImportOverrides["fr-FR"],
designImportOverrides["fr-FR"],
designFigmaConnectionOverrides["fr-FR"],
designModeFeatureOverrides["fr-FR"],
designCanvasFeatureOverrides["fr-FR"],
designShapeToolOverrides["fr-FR"],
designPublicShareOverrides["fr-FR"],
designVisualEditOverrides["fr-FR"],
designTemplateFeatureOverrides["fr-FR"],
designPendingVisualStyleOverrides["fr-FR"],
designAddLocalhostScreenOverrides["fr-FR"],
designFillStylesComingSoonOverrides["fr-FR"],
designFramePresetsOverrides["fr-FR"],
designAlignmentOverrides["fr-FR"],
designShaderAndRotationOverrides["fr-FR"],
designInteractionStatesOverrides["fr-FR"],
designMotionAndBreakpointOverrides["fr-FR"],
breakpointBarOverrides["fr-FR"],
motionDockOverrides["fr-FR"],
designRuntimeIdentityAndBridgeOverrides["fr-FR"],
designComponentInstanceOverrides["fr-FR"],
designComponentSourceOverrides["fr-FR"],
{
root: {
commandActions: "Actions",
commandSearch: "Rechercher",
commandAppearance: "Apparence",
openAgent: "Ouvrir l’agent",
toggleTheme: "Changer de thème",
},
navigation: {
designs: "Designs",
templates: "Modèles",
designSystems: "Systèmes de design",
setupDesignSystem: "Configurer le système de design",
agent: "Agent",
settings: "Paramètres",
openNavigation: "Ouvrir la navigation",
expandSidebar: "Développer la barre latérale",
collapseSidebar: "Réduire la barre latérale",
},
settings: {
agentTitle: "Gérer l’agent",
agentDescription:
"Gérez le modèle de l’agent, les clés API, les automatisations, la voix et les autres contrôles.",
openAgentSettings: "Gérer l’agent",
languageTitle: "Langue",
languageDescription: "Choisissez la langue de l'interface de Design.",
languageLabel: "Langue de l'interface",
},
designEditor: {
toasts: {
tweakConflict:
"Les réglages ont été modifiés ailleurs. Actualisez le design avant de réessayer.",
tweakSaveNotDurable:
"Les réglages ne sont pas encore enregistrés. Gardez cet onglet ouvert et réessayez.",
},
},
pages: {
presentEmpty: "Aucun contenu à présenter",
presentBackToEditor: "Retour à l’éditeur",
teamCreateOrgDescription:
"Configurez une équipe pour partager des designs avec vos collègues.",
},
chat: {
emptyState: "Décrivez un design à créer",
suggestionLandingPage: "Conçois une landing page pour ma startup",
suggestionBrandMatch: "Adapte ceci à notre marque",
suggestionMobile: "Ajoute une version mobile",
},
},
),
),
"de-DE": mergeLocalizedMessages(
"de-DE",
mergePartialMessages(
designLocaleOverrides["de-DE"],
designRawLiteralOverrides["de-DE"],
designExactEnglishOverrides["de-DE"],
designLeftRailOverrides["de-DE"],
designTokenImportOverrides["de-DE"],
designImportOverrides["de-DE"],
designFigmaConnectionOverrides["de-DE"],
designModeFeatureOverrides["de-DE"],
designCanvasFeatureOverrides["de-DE"],
designShapeToolOverrides["de-DE"],
designPublicShareOverrides["de-DE"],
designVisualEditOverrides["de-DE"],
designTemplateFeatureOverrides["de-DE"],
designPendingVisualStyleOverrides["de-DE"],
designAddLocalhostScreenOverrides["de-DE"],
designFillStylesComingSoonOverrides["de-DE"],
designFramePresetsOverrides["de-DE"],
designAlignmentOverrides["de-DE"],
designShaderAndRotationOverrides["de-DE"],
designInteractionStatesOverrides["de-DE"],
designMotionAndBreakpointOverrides["de-DE"],
breakpointBarOverrides["de-DE"],
motionDockOverrides["de-DE"],
designRuntimeIdentityAndBridgeOverrides["de-DE"],
designComponentInstanceOverrides["de-DE"],
designComponentSourceOverrides["de-DE"],
{
root: {
commandActions: "Aktionen",
commandSearch: "Suchen",
commandAppearance: "Darstellung",
openAgent: "Agent öffnen",
toggleTheme: "Theme wechseln",
},
navigation: {
designs: "Designs",
templates: "Vorlagen",
designSystems: "Designsysteme",
setupDesignSystem: "Designsystem einrichten",
agent: "Agent",
settings: "Einstellungen",
openNavigation: "Navigation öffnen",
expandSidebar: "Seitenleiste erweitern",
collapseSidebar: "Seitenleiste einklappen",
},
settings: {
agentTitle: "Agent verwalten",
agentDescription:
"Verwalte das Modell, die API-Schlüssel, Automatisierungen, Sprache und weitere Steuerungen des Agents.",
openAgentSettings: "Agent verwalten",
languageTitle: "Sprache",
languageDescription: "Wähle die Oberflächensprache für Design.",
languageLabel: "Oberflächensprache",
},
designEditor: {
toasts: {
tweakConflict:
"Die Anpassungen wurden an anderer Stelle geändert. Aktualisiere das Design, bevor du es erneut versuchst.",
tweakSaveNotDurable:
"Die Anpassungen sind noch nicht gespeichert. Lass diesen Tab geöffnet und versuche es erneut.",
},
},
pages: {
presentEmpty: "Keine Inhalte zum Präsentieren",
presentBackToEditor: "Zurück zum Editor",
teamCreateOrgDescription:
"Richte ein Team ein, um Designs mit deinen Kollegen zu teilen.",
},
chat: {
emptyState: "Beschreibe ein Design, das erstellt werden soll",
suggestionLandingPage: "Entwirf eine Landingpage für mein Startup",
suggestionBrandMatch: "Passe dies an unsere Marke an",
suggestionMobile: "Füge eine mobile Version hinzu",
},
},
),
),
"ja-JP": mergeLocalizedMessages(
"ja-JP",
mergePartialMessages(
designLocaleOverrides["ja-JP"],
designRawLiteralOverrides["ja-JP"],
designExactEnglishOverrides["ja-JP"],
designLeftRailOverrides["ja-JP"],
designTokenImportOverrides["ja-JP"],
designImportOverrides["ja-JP"],
designFigmaConnectionOverrides["ja-JP"],
designModeFeatureOverrides["ja-JP"],
designCanvasFeatureOverrides["ja-JP"],
designShapeToolOverrides["ja-JP"],
designPublicShareOverrides["ja-JP"],
designVisualEditOverrides["ja-JP"],
designTemplateFeatureOverrides["ja-JP"],
designPendingVisualStyleOverrides["ja-JP"],
designAddLocalhostScreenOverrides["ja-JP"],
designFillStylesComingSoonOverrides["ja-JP"],
designFramePresetsOverrides["ja-JP"],
designAlignmentOverrides["ja-JP"],
designShaderAndRotationOverrides["ja-JP"],
designInteractionStatesOverrides["ja-JP"],
designMotionAndBreakpointOverrides["ja-JP"],
breakpointBarOverrides["ja-JP"],
motionDockOverrides["ja-JP"],
designRuntimeIdentityAndBridgeOverrides["ja-JP"],
designComponentInstanceOverrides["ja-JP"],
designComponentSourceOverrides["ja-JP"],
{
root: {
commandActions: "操作",
commandSearch: "検索",
commandAppearance: "外観",
openAgent: "エージェントを開く",
toggleTheme: "テーマを切り替え",
},
navigation: {
designs: "デザイン",
templates: "テンプレート",
designSystems: "デザインシステム",
setupDesignSystem: "デザインシステムを設定",
agent: "エージェント",
settings: "設定",
openNavigation: "ナビゲーションを開く",
expandSidebar: "サイドバーを展開",
collapseSidebar: "サイドバーを折りたたむ",
},
settings: {
agentTitle: "エージェントを管理",
agentDescription:
"エージェントのモデル、API キー、自動化、音声などを管理します。",
openAgentSettings: "エージェントを管理",
languageTitle: "言語",
languageDescription: "Design のインターフェース言語を選択します。",
languageLabel: "インターフェース言語",
},
designEditor: {
toasts: {
tweakConflict:
"調整内容が別の場所で変更されました。デザインを更新してからもう一度お試しください。",
tweakSaveNotDurable:
"調整内容はまだ保存されていません。このタブを開いたまま、もう一度お試しください。",
},
},
pages: {
presentEmpty: "プレゼンするコンテンツがありません",
presentBackToEditor: "エディターに戻る",
teamCreateOrgDescription:
"同僚とデザインを共有するためのチームを設定します。",
},
chat: {
emptyState: "作成したいデザインを説明してください",
suggestionLandingPage:
"スタートアップ向けのランディングページをデザイン",
suggestionBrandMatch: "これをブランドに合わせる",
suggestionMobile: "モバイル版を追加",
},
},
),
),
"ko-KR": mergeLocalizedMessages(
"ko-KR",
mergePartialMessages(
designLocaleOverrides["ko-KR"],
designRawLiteralOverrides["ko-KR"],
designExactEnglishOverrides["ko-KR"],
designLeftRailOverrides["ko-KR"],
designTokenImportOverrides["ko-KR"],
designImportOverrides["ko-KR"],
designFigmaConnectionOverrides["ko-KR"],
designModeFeatureOverrides["ko-KR"],
designCanvasFeatureOverrides["ko-KR"],
designShapeToolOverrides["ko-KR"],
designPublicShareOverrides["ko-KR"],
designVisualEditOverrides["ko-KR"],
designTemplateFeatureOverrides["ko-KR"],
designPendingVisualStyleOverrides["ko-KR"],
designAddLocalhostScreenOverrides["ko-KR"],
designFillStylesComingSoonOverrides["ko-KR"],
designFramePresetsOverrides["ko-KR"],
designAlignmentOverrides["ko-KR"],
designShaderAndRotationOverrides["ko-KR"],
designInteractionStatesOverrides["ko-KR"],
designMotionAndBreakpointOverrides["ko-KR"],
breakpointBarOverrides["ko-KR"],
motionDockOverrides["ko-KR"],
designRuntimeIdentityAndBridgeOverrides["ko-KR"],
designComponentInstanceOverrides["ko-KR"],
designComponentSourceOverrides["ko-KR"],
{
root: {
commandActions: "작업",
commandSearch: "검색",
commandAppearance: "모양",
openAgent: "에이전트 열기",
toggleTheme: "테마 전환",
},
navigation: {
designs: "디자인",
templates: "템플릿",
designSystems: "디자인 시스템",
setupDesignSystem: "디자인 시스템 설정",
agent: "에이전트",
settings: "설정",
openNavigation: "탐색 열기",
expandSidebar: "사이드바 펼치기",
collapseSidebar: "사이드바 접기",
},
settings: {
agentTitle: "에이전트 관리",
agentDescription:
"에이전트의 모델, API 키, 자동화, 음성 및 기타 제어를 관리합니다.",
openAgentSettings: "에이전트 관리",
languageTitle: "언어",
languageDescription: "Design의 인터페이스 언어를 선택하세요.",
languageLabel: "인터페이스 언어",
},
designEditor: {
toasts: {
tweakConflict:
"조정 값이 다른 곳에서 변경되었습니다. 디자인을 새로고침한 후 다시 시도하세요.",
tweakSaveNotDurable:
"조정 값이 아직 저장되지 않았습니다. 이 탭을 열어 둔 채 다시 시도하세요.",
},
},
pages: {
presentEmpty: "발표할 콘텐츠가 없습니다",
presentBackToEditor: "편집기로 돌아가기",
teamCreateOrgDescription: "동료와 디자인을 공유할 팀을 설정하세요.",
},
chat: {
emptyState: "만들 디자인을 설명하세요",
suggestionLandingPage: "내 스타트업 랜딩 페이지 디자인",
suggestionBrandMatch: "우리 브랜드에 맞게 만들기",
suggestionMobile: "모바일 버전 추가",
},
},
),
),
"pt-BR": mergeLocalizedMessages(
"pt-BR",
mergePartialMessages(
designLocaleOverrides["pt-BR"],
designRawLiteralOverrides["pt-BR"],
designExactEnglishOverrides["pt-BR"],
designLeftRailOverrides["pt-BR"],
designTokenImportOverrides["pt-BR"],
designImportOverrides["pt-BR"],
designFigmaConnectionOverrides["pt-BR"],
designModeFeatureOverrides["pt-BR"],
designCanvasFeatureOverrides["pt-BR"],
designShapeToolOverrides["pt-BR"],
designPublicShareOverrides["pt-BR"],
designVisualEditOverrides["pt-BR"],
designTemplateFeatureOverrides["pt-BR"],
designPendingVisualStyleOverrides["pt-BR"],
designAddLocalhostScreenOverrides["pt-BR"],
designFillStylesComingSoonOverrides["pt-BR"],
designFramePresetsOverrides["pt-BR"],
designAlignmentOverrides["pt-BR"],
designShaderAndRotationOverrides["pt-BR"],
designInteractionStatesOverrides["pt-BR"],
designMotionAndBreakpointOverrides["pt-BR"],
breakpointBarOverrides["pt-BR"],
motionDockOverrides["pt-BR"],
designRuntimeIdentityAndBridgeOverrides["pt-BR"],
designComponentInstanceOverrides["pt-BR"],
designComponentSourceOverrides["pt-BR"],
{
root: {
commandActions: "Ações",
commandSearch: "Buscar",
commandAppearance: "Aparência",
openAgent: "Abrir agente",
toggleTheme: "Alternar tema",
},
navigation: {
designs: "Designs",
templates: "Modelos",
designSystems: "Sistemas de design",
setupDesignSystem: "Configurar sistema de design",
agent: "Agente",
settings: "Configurações",
openNavigation: "Abrir navegação",
expandSidebar: "Expandir barra lateral",
collapseSidebar: "Recolher barra lateral",
},
settings: {
agentTitle: "Gerenciar agente",
agentDescription:
"Gerencie o modelo do agente, chaves de API, automações, voz e outros controles.",
openAgentSettings: "Gerenciar agente",
languageTitle: "Idioma",
languageDescription: "Escolha o idioma da interface do Design.",
languageLabel: "Idioma da interface",
},
designEditor: {
toasts: {
tweakConflict:
"Os ajustes foram alterados em outro lugar. Atualize o design antes de tentar novamente.",
tweakSaveNotDurable:
"Os ajustes ainda não foram salvos. Mantenha esta aba aberta e tente novamente.",
},
},
pages: {
presentEmpty: "Nenhum conteúdo para apresentar",
presentBackToEditor: "Voltar ao editor",
teamCreateOrgDescription:
"Configure uma equipe para compartilhar designs com seus colegas.",
},
chat: {
emptyState: "Descreva um design para criar",
suggestionLandingPage: "Crie uma landing page para minha startup",
suggestionBrandMatch: "Faça isto combinar com nossa marca",
suggestionMobile: "Adicione uma versão mobile",
},
},
),
),
"hi-IN": mergeLocalizedMessages(
"hi-IN",
mergePartialMessages(
designLocaleOverrides["hi-IN"],
designRawLiteralOverrides["hi-IN"],
designExactEnglishOverrides["hi-IN"],
designLeftRailOverrides["hi-IN"],
designTokenImportOverrides["hi-IN"],
designImportOverrides["hi-IN"],
designFigmaConnectionOverrides["hi-IN"],
designModeFeatureOverrides["hi-IN"],
designCanvasFeatureOverrides["hi-IN"],
designShapeToolOverrides["hi-IN"],
designPublicShareOverrides["hi-IN"],
designVisualEditOverrides["hi-IN"],
designTemplateFeatureOverrides["hi-IN"],
designPendingVisualStyleOverrides["hi-IN"],
designAddLocalhostScreenOverrides["hi-IN"],
designFillStylesComingSoonOverrides["hi-IN"],
designFramePresetsOverrides["hi-IN"],
designAlignmentOverrides["hi-IN"],
designShaderAndRotationOverrides["hi-IN"],
designInteractionStatesOverrides["hi-IN"],
designMotionAndBreakpointOverrides["hi-IN"],
breakpointBarOverrides["hi-IN"],
motionDockOverrides["hi-IN"],
designRuntimeIdentityAndBridgeOverrides["hi-IN"],
designComponentInstanceOverrides["hi-IN"],
designComponentSourceOverrides["hi-IN"],
{
root: {
commandActions: "क्रियाएं",
commandSearch: "खोजें",
commandAppearance: "रूप",
openAgent: "एजेंट खोलें",
toggleTheme: "थीम बदलें",
},
navigation: {
designs: "डिज़ाइन",
templates: "टेम्पलेट",
designSystems: "डिज़ाइन सिस्टम",
setupDesignSystem: "डिज़ाइन सिस्टम सेट करें",
agent: "एजेंट",
settings: "सेटिंग्स",
openNavigation: "नेविगेशन खोलें",
expandSidebar: "साइडबार फैलाएं",
collapseSidebar: "साइडबार समेटें",
},
settings: {
agentTitle: "एजेंट प्रबंधित करें",
agentDescription:
"एजेंट के मॉडल, API कुंजियों, ऑटोमेशन, आवाज़ और अन्य नियंत्रणों को प्रबंधित करें।",
openAgentSettings: "एजेंट प्रबंधित करें",
languageTitle: "भाषा",
languageDescription: "Design की interface भाषा चुनें।",
languageLabel: "इंटरफ़ेस भाषा",
},
designEditor: {
toasts: {
tweakConflict:
"ट्वीक्स कहीं और बदल दिए गए हैं। फिर से प्रयास करने से पहले डिज़ाइन रीफ़्रेश करें।",
tweakSaveNotDurable:
"ट्वीक्स अभी सहेजे नहीं गए हैं। इस टैब को खुला रखें और फिर से प्रयास करें।",
},
},
pages: {
presentEmpty: "प्रस्तुत करने के लिए कोई सामग्री नहीं",
presentBackToEditor: "संपादक पर वापस जाएं",
teamCreateOrgDescription:
"डिज़ाइन को अपने सहयोगियों के साथ साझा करने के लिए टीम सेट करें।",
},
chat: {
emptyState: "बनाने के लिए design का वर्णन करें",
suggestionLandingPage: "मेरे startup के लिए landing page design करें",
suggestionBrandMatch: "इसे हमारे brand से match करें",
suggestionMobile: "इसका mobile version जोड़ें",
},
},
),
),
"ar-SA": mergeLocalizedMessages(
"ar-SA",
mergePartialMessages(
designLocaleOverrides["ar-SA"],
designRawLiteralOverrides["ar-SA"],
designExactEnglishOverrides["ar-SA"],
designLeftRailOverrides["ar-SA"],
designTokenImportOverrides["ar-SA"],
designImportOverrides["ar-SA"],
designFigmaConnectionOverrides["ar-SA"],
designModeFeatureOverrides["ar-SA"],
designCanvasFeatureOverrides["ar-SA"],
designShapeToolOverrides["ar-SA"],
designPublicShareOverrides["ar-SA"],
designVisualEditOverrides["ar-SA"],
designTemplateFeatureOverrides["ar-SA"],
designPendingVisualStyleOverrides["ar-SA"],
designAddLocalhostScreenOverrides["ar-SA"],
designFillStylesComingSoonOverrides["ar-SA"],
designFramePresetsOverrides["ar-SA"],
designAlignmentOverrides["ar-SA"],
designShaderAndRotationOverrides["ar-SA"],
designInteractionStatesOverrides["ar-SA"],
designMotionAndBreakpointOverrides["ar-SA"],
breakpointBarOverrides["ar-SA"],
motionDockOverrides["ar-SA"],
designRuntimeIdentityAndBridgeOverrides["ar-SA"],
designComponentInstanceOverrides["ar-SA"],
designComponentSourceOverrides["ar-SA"],
{
root: {
commandActions: "الإجراءات",
commandSearch: "بحث",
commandAppearance: "المظهر",
openAgent: "فتح الوكيل",
toggleTheme: "تبديل السمة",
},
navigation: {
designs: "التصاميم",
templates: "القوالب",
designSystems: "أنظمة التصميم",
setupDesignSystem: "إعداد نظام التصميم",
agent: "الوكيل",
settings: "الإعدادات",
openNavigation: "فتح التنقل",
expandSidebar: "توسيع الشريط الجانبي",
collapseSidebar: "طي الشريط الجانبي",
},
settings: {
agentTitle: "إدارة الوكيل",
agentDescription:
"أدر نموذج الوكيل ومفاتيح API والأتمتة والصوت وعناصر التحكم الأخرى.",
openAgentSettings: "إدارة الوكيل",
languageTitle: "اللغة",
languageDescription: "اختر لغة واجهة Design.",
languageLabel: "لغة الواجهة",
},
designEditor: {
toasts: {
tweakConflict:
"تم تغيير التعديلات في مكان آخر. حدّث التصميم قبل المحاولة مرة أخرى.",
tweakSaveNotDurable:
"لم تُحفظ التعديلات بعد. أبقِ علامة التبويب هذه مفتوحة وحاول مرة أخرى.",
},
},
pages: {
presentEmpty: "لا يوجد محتوى للعرض",
presentBackToEditor: "العودة إلى المحرر",
teamCreateOrgDescription: "أعد فريقا لمشاركة التصاميم مع زملائك.",
},
chat: {
emptyState: "صف تصميمًا لإنشائه",
suggestionLandingPage: "صمم صفحة هبوط لشركتي الناشئة",
suggestionBrandMatch: "اجعل هذا مطابقًا لعلامتنا",
suggestionMobile: "أضف نسخة للجوال",
},
},
),
),
} satisfies Record;