@synthetic-ai/illustrator-mcp 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,230 @@
1
+ {
2
+ "msg.bridge.notConnected": "Illustrator not connected. Open Illustrator with the «Synthetic Illustrator MCP» panel (which hosts the bridge on port {port}).",
3
+ "msg.bridge.timeout": "timeout ({ms}ms)",
4
+ "msg.doctor.bridgeConnecting": "Bridge: connecting to {url} (checking the Synthetic Illustrator MCP panel is open in Illustrator)...",
5
+ "msg.doctor.bridgeFail": "Bridge not reachable. Open Illustrator with the Synthetic Illustrator MCP panel (Window → Extensions → Synthetic Illustrator MCP) and confirm it says \"Bridge active\".",
6
+ "msg.doctor.bridgeOk": "Bridge reachable — Synthetic Illustrator MCP panel is running inside Illustrator.",
7
+ "msg.doctor.language": "Language: {language} (source: {source})",
8
+ "msg.doctor.licenseFailed": "License check failed: {message}",
9
+ "msg.doctor.licenseInvalid": "invalid",
10
+ "msg.doctor.licenseNotSet": "IL_MCP_LICENSE is not set. Get a license at https://synthetic.com.ar/illustrator-mcp",
11
+ "msg.doctor.licensePlanActive": "active",
12
+ "msg.doctor.licenseValid": "License valid ({plan})",
13
+ "msg.doctor.nodeOk": "Node.js {version} (>=18 required)",
14
+ "msg.doctor.nodeTooOld": "Node.js {version} — needs to be 18 or newer",
15
+ "msg.doctor.support": "Still stuck? Paste this output into a ticket at https://synthetic.com.ar/dashboard/support",
16
+ "msg.doctor.title": "Synthetic Illustrator MCP — doctor",
17
+ "msg.healthcheck.hint": "Open Illustrator with the Synthetic Illustrator MCP panel (it hosts the bridge).",
18
+ "msg.host.errorAtLine": "{message} (line {line})",
19
+ "msg.host.itemNotFound": "Item not found: {name}",
20
+ "msg.host.layerNotFound": "Layer not found: {name}",
21
+ "msg.host.noDocument": "No document open",
22
+ "msg.host.notACompoundPath": "Not a compound path: {name}",
23
+ "msg.host.notAGroup": "Not a group: {name}",
24
+ "msg.host.notAPath": "Not a path: {name}",
25
+ "msg.host.unknownCommand": "unknown cmd: {cmd}",
26
+ "msg.license.getLicense": "Get a license at https://synthetic.com.ar/illustrator-mcp",
27
+ "msg.license.invalidOrMissing": "Invalid or missing license.",
28
+ "msg.license.noKey": "No license key. Set IL_MCP_LICENSE in your MCP config. Get a license at https://synthetic.com.ar/illustrator-mcp",
29
+ "msg.license.required": "License required",
30
+ "msg.license.serverUnreachable": "License server unreachable. Check your internet connection.",
31
+ "msg.license.serverUnreachableRetry": "License server unreachable. Will retry next call.",
32
+ "msg.server.instructions": "Illustrator MCP (Synthetic). Controls Adobe Illustrator through a bridge plugin. Tool convention: diagnostics il_* ; domain verb_noun (list_layers, get_document_info) ; escape hatches run_jsx / run_jsx_json. Start with il_healthcheck. Page items are addressed by name (set one with rename_item if an item has none) — list_items/get_item/get_selection to discover names. Covers documents, layers, items (move/rotate/resize/z-order/group), paths, shapes, text, color/fill/stroke/swatches, artboards, and export (PNG/JPG/SVG/PDF).",
33
+ "tool.add_area_text_frame": "Adds an area-text frame: text flows inside a rectangle and wraps.",
34
+ "tool.add_artboard": "Adds a new artboard.",
35
+ "tool.add_layer": "Adds a new layer to the active document.",
36
+ "tool.add_shape_ellipse": "Adds an ellipse.",
37
+ "tool.add_shape_line": "Adds a straight line segment between two points.",
38
+ "tool.add_shape_polygon": "Adds a regular polygon centered at (cx, cy).",
39
+ "tool.add_shape_rectangle": "Adds a rectangle. top/left are in points, document coordinates (Y down).",
40
+ "tool.add_shape_rounded_rectangle": "Adds a rounded rectangle.",
41
+ "tool.add_shape_star": "Adds a star centered at (cx, cy).",
42
+ "tool.add_spot_color": "Creates a new spot color from a CMYK/RGB/gray value and registers it in the document's swatches.",
43
+ "tool.add_swatch": "Adds a new color swatch to the document.",
44
+ "tool.add_text_frame": "Adds a point-text frame (text anchored at a single point, grows with content) at (x, y).",
45
+ "tool.align_items": "Aligns items to their own combined bounding box on one edge/axis.",
46
+ "tool.apply_brush_to_path": "Applies an existing brush to a path's stroke.",
47
+ "tool.apply_character_style": "Applies a named character style to a text frame's full contents.",
48
+ "tool.apply_drop_shadow_effect": "Applies a live Drop Shadow appearance effect (non-destructive, editable/removable in the Appearance panel). Always black -- the effect's own color/blend-mode parameters rejected every value tried live, so this only exposes what's confirmed working.",
49
+ "tool.apply_feather_effect": "Applies a live Feather appearance effect (soft-fades the item's edge).",
50
+ "tool.apply_gradient_fill": "Fills a page item with an existing gradient.",
51
+ "tool.apply_gradient_stroke": "Strokes a page item with an existing gradient.",
52
+ "tool.apply_live_effect_raw": "Escape hatch: applies an arbitrary live effect by its internal name and raw XML parameter dictionary (e.g. name='Adobe Drop Shadow', xml='<LiveEffect name=\"Adobe Drop Shadow\"><Dict>...</Dict></LiveEffect>'). For effects not covered by a dedicated tool.",
53
+ "tool.apply_named_effect": "Applies one of 87 confirmed-working Illustrator live effects by short name, with default parameters (or a raw XML <Dict> override for fine control -- see apply_live_effect_raw for the format). Covers most of Effect > Illustrator Effects and Effect > Photoshop Effects. Non-destructive/editable in the Appearance panel like the 4 dedicated effect tools (drop shadow, feather, round corners, offset path), which take real typed parameters instead and should be preferred when available.",
54
+ "tool.apply_offset_path_effect": "Applies a live Offset Path appearance effect (grows/shrinks a path's outline).",
55
+ "tool.apply_paragraph_style": "Applies a named paragraph style to a text frame's full contents.",
56
+ "tool.apply_pattern_fill": "Fills a page item with an existing pattern swatch.",
57
+ "tool.apply_round_corners_effect": "Applies a live Round Corners appearance effect to a path.",
58
+ "tool.apply_swatch": "Applies an existing swatch as a page item's fill or stroke.",
59
+ "tool.break_symbol_link": "Breaks a symbol instance's link, converting it back to regular editable artwork. Returns the resulting item's name.",
60
+ "tool.bring_forward": "Moves a page item one step forward in its layer's stacking order.",
61
+ "tool.bring_to_front": "Brings a page item to the front of its layer's stacking order.",
62
+ "tool.close_document": "Closes the active document (save=true to save first).",
63
+ "tool.convert_item_to_guide": "Converts a path item into a non-printing ruler guide.",
64
+ "tool.create_document": "Creates a new document.",
65
+ "tool.create_gradient": "Creates a linear or radial gradient with 2+ color stops (position 0-100). Returns the gradient's name.",
66
+ "tool.create_path_from_points": "Creates a PathItem from an array of anchor points ({x,y} in points, document coordinates with Y pointing down as passed here — the tool flips to Illustrator's own Y-up convention internally). Straight segments only (no bezier handles); use set_path_point_handles for curves afterwards.",
67
+ "tool.create_swatch_group": "Creates a new swatch group (color group) containing the given existing swatches.",
68
+ "tool.create_symbol_from_item": "Creates a new symbol definition from a page item. Illustrator replaces the source item in place with an instance of the new symbol.",
69
+ "tool.delete_artboard": "Deletes an artboard by index (a document must keep at least one).",
70
+ "tool.delete_gradient": "Deletes a gradient from the document.",
71
+ "tool.delete_item": "Deletes a page item by name.",
72
+ "tool.delete_layer": "Deletes a layer and everything on it.",
73
+ "tool.delete_swatch": "Deletes a color swatch from the document.",
74
+ "tool.delete_symbol": "Deletes a symbol definition from the document (existing instances become regular art).",
75
+ "tool.deselect_all": "Clears the active document's selection.",
76
+ "tool.distribute_items": "Distributes 3+ items with equal spacing between their edges, along one axis.",
77
+ "tool.duplicate_item": "Duplicates a page item. Returns the new item's (auto-generated) name.",
78
+ "tool.duplicate_layer": "Duplicates a layer and everything on it (Layer has no direct duplicate() in Illustrator's DOM, so this creates a new layer and duplicates each item into it). Returns the new layer's name.",
79
+ "tool.embed_placed_item": "Embeds a linked placed item into the document (no longer references the external file).",
80
+ "tool.export_jpg": "Exports the active document (or one artboard) as a JPEG.",
81
+ "tool.export_pdf": "Saves the active document as a PDF (via Save As, not Export — PDF is a native save format in Illustrator).",
82
+ "tool.export_png": "Exports the active document (or one artboard) as a transparent PNG-24.",
83
+ "tool.export_svg": "Exports the active document as SVG.",
84
+ "tool.find_replace_text": "Finds and replaces a substring across every text frame in the active document. Returns how many frames were changed.",
85
+ "tool.flip_item": "Flips a page item horizontally and/or vertically around its own center.",
86
+ "tool.get_document_info": "Info about the active document: active artboard, artboard count, color space, units, layers.",
87
+ "tool.get_gradient": "Returns a gradient's type and stops.",
88
+ "tool.get_item": "Info about a page item by name: type, bounds, layer, and (for paths) fill/stroke.",
89
+ "tool.get_item_bounds": "Geometric bounds (left, top, right, bottom, width, height, in points) of a page item.",
90
+ "tool.get_layer": "Info about a layer by name.",
91
+ "tool.get_path_points": "Returns a path's anchor points and bezier handles (in the same Y-down convention create_path_from_points takes).",
92
+ "tool.get_ruler_units": "Returns the document's ruler units.",
93
+ "tool.get_selection": "Lists the page items currently selected in the document.",
94
+ "tool.get_text_contents": "Returns a text frame's string contents.",
95
+ "tool.group_items": "Groups page items together into a new GroupItem. Returns the group's name.",
96
+ "tool.il_healthcheck": "Checks the connection to Illustrator: version and active document.",
97
+ "tool.il_info": "App info: version, open documents.",
98
+ "tool.invert_selection": "Selects every page item that is NOT currently selected, and deselects everything that was.",
99
+ "tool.list_artboards": "Lists the document's artboards (name, bounds).",
100
+ "tool.list_brushes": "Lists the document's brushes by name (Illustrator's scripting API doesn't expose the brush type -- art/calligraphic/pattern/scatter -- so it isn't included).",
101
+ "tool.list_character_styles": "Lists the document's named character styles.",
102
+ "tool.list_documents": "Lists the open documents.",
103
+ "tool.list_fonts": "Lists a sample of available font PostScript names (first 200 — Illustrator can have thousands installed).",
104
+ "tool.list_gradients": "Lists the document's gradients (name, type, stop count).",
105
+ "tool.list_group_children": "Lists the direct children of a GroupItem.",
106
+ "tool.list_items": "Lists page items in the active document (name, type, bounds). Optionally scoped to one layer by name.",
107
+ "tool.list_layers": "Lists the layer tree of the active document (name, visible, locked, item count by type).",
108
+ "tool.list_paragraph_styles": "Lists the document's named paragraph styles.",
109
+ "tool.list_patterns": "Lists the document's pattern swatches.",
110
+ "tool.list_placed_items": "Lists placed (linked or embedded) raster/vector files in the document.",
111
+ "tool.list_spot_colors": "Lists the document's spot colors.",
112
+ "tool.list_swatch_groups": "Lists the document's swatch groups (color groups) and the swatches in each.",
113
+ "tool.list_swatches": "Lists the document's color swatches.",
114
+ "tool.list_symbols": "Lists the document's symbols.",
115
+ "tool.make_clipping_mask": "Groups items and uses one of them (maskItemName, must be a path/compound path) as a clipping mask for the rest. Returns the group's name.",
116
+ "tool.make_compound_path": "Combines path items into a single CompoundPathItem (e.g. for donut shapes with holes). Returns the compound path's name.",
117
+ "tool.move_item": "Moves a page item to an absolute position (top-left of its bounding box, in points).",
118
+ "tool.move_item_to_layer": "Moves a page item into a different layer.",
119
+ "tool.move_layer": "Reorders a layer to the front, back, or relative to another layer.",
120
+ "tool.open_document": "Opens a file.",
121
+ "tool.outline_text": "Converts a text frame to outlines (editable vector paths). Returns the resulting group's name — the original text frame is replaced.",
122
+ "tool.place_symbol_instance": "Places an instance of an existing symbol at (x, y).",
123
+ "tool.play_action": "Plays an existing Illustrator action (from the Actions panel) by name and set name.",
124
+ "tool.release_clipping_mask": "Releases a clipping group back into its individual items (un-clips and ungroups).",
125
+ "tool.release_compound_path": "Releases a CompoundPathItem back into its individual PathItems.",
126
+ "tool.release_guide": "Converts a guide back into a regular, editable path.",
127
+ "tool.relink_placed_item": "Repoints a placed item to a different file on disk.",
128
+ "tool.rename_artboard": "Renames an artboard by index.",
129
+ "tool.rename_item": "Renames a page item (item names are how other tools address a specific item).",
130
+ "tool.rename_layer": "Renames a layer.",
131
+ "tool.rename_symbol": "Renames a symbol definition.",
132
+ "tool.resize_item": "Scales a page item by percentage (100 = no change) around its center.",
133
+ "tool.rotate_item": "Rotates a page item by degrees (positive = counter-clockwise) around its center.",
134
+ "tool.run_jsx": "Runs arbitrary ExtendScript in Illustrator. The code can use 'return'. Returns {ok,data}.",
135
+ "tool.run_jsx_json": "Runs ExtendScript that returns a serializable value (JSON). Same as run_jsx but meant for data.",
136
+ "tool.save_document": "Saves the active document.",
137
+ "tool.save_document_as": "Saves the active document as a new .ai file.",
138
+ "tool.select_items": "Sets the active document selection to the given page items (by name). Pass an empty array to clear.",
139
+ "tool.select_same_fill_color": "Selects every page item in the document whose fill color matches a reference item's fill color exactly.",
140
+ "tool.send_backward": "Moves a page item one step backward in its layer's stacking order.",
141
+ "tool.send_to_back": "Sends a page item to the back of its layer's stacking order.",
142
+ "tool.set_active_artboard": "Sets which artboard index is active (affects tools that default to 'the active artboard', e.g. get_document_info).",
143
+ "tool.set_blend_mode": "Sets a page item's blend mode.",
144
+ "tool.set_fill_color": "Sets a page item's fill color, or removes the fill if color is omitted.",
145
+ "tool.set_group_clipped": "Low-level: directly sets whether an existing group's topmost item is used as its clipping mask.",
146
+ "tool.set_item_locked": "Locks or unlocks a page item.",
147
+ "tool.set_item_visible": "Shows or hides a page item.",
148
+ "tool.set_layer_color": "Sets a layer's selection/outline color (shown in the Layers panel and as the selection-highlight color for its items), not its artwork.",
149
+ "tool.set_layer_locked": "Locks or unlocks a layer.",
150
+ "tool.set_layer_visible": "Shows or hides a layer.",
151
+ "tool.set_opacity": "Sets a page item's opacity (0-100).",
152
+ "tool.set_path_closed": "Opens or closes a path.",
153
+ "tool.set_path_points": "Replaces a path's anchor points wholesale (straight segments; same Y-down convention).",
154
+ "tool.set_ruler_units": "Sets the document's ruler units.",
155
+ "tool.set_stroke_cap": "Sets a path's stroke end cap style.",
156
+ "tool.set_stroke_color": "Sets a page item's stroke color, or removes the stroke if color is omitted.",
157
+ "tool.set_stroke_dashes": "Sets a path's dash pattern (lengths in points, e.g. [4,2] for dash-gap-dash-gap). Pass an empty array for a solid line.",
158
+ "tool.set_stroke_join": "Sets a path's stroke corner join style.",
159
+ "tool.set_stroke_miter_limit": "Sets a path's miter limit (1-500; only affects miter joins).",
160
+ "tool.set_stroke_width": "Sets a page item's stroke width, in points.",
161
+ "tool.set_symbol_instance_symbol": "Re-points an existing symbol instance to a different symbol definition.",
162
+ "tool.set_text_contents": "Sets a text frame's string contents.",
163
+ "tool.set_text_justification": "Sets a text frame's paragraph alignment.",
164
+ "tool.set_text_leading": "Sets a text frame's line leading (spacing), in points. Turns off auto-leading (text defaults to it), since a leading value assigned while auto-leading is on is silently ignored.",
165
+ "tool.set_text_style": "Sets character-level style for a text frame's full contents: font (PostScript name, e.g. 'Helvetica-Bold'), size (pt), fill color, and/or tracking.",
166
+ "tool.shear_item": "Shears (slants) a page item by degrees along one axis, around its own center.",
167
+ "tool.translate_item": "Moves a page item relative to its current position, in points.",
168
+ "tool.ungroup_item": "Ungroups a GroupItem, moving its children up to the group's parent.",
169
+ "ui.i18n.language": "Language",
170
+ "ui.i18n.restartNote": "The AI tool descriptions switch language after you restart the MCP server (or the app that runs it).",
171
+ "ui.i18n.saveFailed": "Couldn't save the language preference. It will only last for this session.",
172
+ "ui.i18n.saved": "Language saved.",
173
+ "ui.log.backupFailed": "Backup failed for {file}: {message}",
174
+ "ui.log.bridgeError": "bridge error: {message}",
175
+ "ui.log.clear": "clear",
176
+ "ui.log.clearTitle": "Clear log",
177
+ "ui.log.clientConnected": "MCP client connected ({count})",
178
+ "ui.log.clientDisconnected": "MCP client disconnected ({count})",
179
+ "ui.log.commitFailed": "Commit failed (rolled back): {message}",
180
+ "ui.log.downloadFailed": "Download failed for {file}: {message}",
181
+ "ui.log.downloading": "Downloading {file}...",
182
+ "ui.log.licenseSaveError": "Error saving license key: {message}",
183
+ "ui.log.listening": "bridge listening on 127.0.0.1:{port}",
184
+ "ui.log.noUpdate": "No update to apply",
185
+ "ui.log.portInUse": "port {port} in use: {message}",
186
+ "ui.log.portRetry": "port {port} still in use, retrying ({attempt}/{max})...",
187
+ "ui.log.restartingBridge": "Restarting bridge...",
188
+ "ui.log.shaMismatch": "SHA256 mismatch for {file} (got {got}..., expected {expected}...)",
189
+ "ui.log.sizeDiffers": "Size differs from manifest for {file} ({got} vs {expected}) — continuing",
190
+ "ui.log.title": "Activity log",
191
+ "ui.log.toggleTitle": "Show/hide log",
192
+ "ui.log.updateAborted": "Update aborted: {reason}",
193
+ "ui.log.updateApplied": "Update v{version} applied. RESTART ILLUSTRATOR to load the new panel.",
194
+ "ui.log.updateNoLicense": "Update failed: no license key saved. Open Settings (⚙) and paste your license key.",
195
+ "ui.log.wsLoadFailed": "could not load 'ws': {message} (--enable-nodejs?)",
196
+ "ui.product.subtitle": "Bridge · in development",
197
+ "ui.settings.licenseEmpty": "Enter a license key before saving.",
198
+ "ui.settings.licenseKey": "License key",
199
+ "ui.settings.licenseNotSaved": "No license key saved yet — required for updates.",
200
+ "ui.settings.licensePlaceholder": "Paste your Illustrator MCP license key",
201
+ "ui.settings.licenseSaveFailed": "Failed to save license key (see log).",
202
+ "ui.settings.licenseSaved": "License key saved.",
203
+ "ui.settings.saveLicense": "Save license",
204
+ "ui.shell.builtBy": "Built by",
205
+ "ui.shell.openSite": "Open synthetic.com.ar",
206
+ "ui.status.active": "Bridge active",
207
+ "ui.status.clientsMany": "{count} MCP clients",
208
+ "ui.status.clientsOne": "{count} MCP client",
209
+ "ui.status.error": "Error: {message}",
210
+ "ui.status.nodeUnavailable": "Node/ws unavailable",
211
+ "ui.status.port": "Port {port}",
212
+ "ui.status.portOpenFailed": "Could not open port {port}",
213
+ "ui.status.restart": "Restart",
214
+ "ui.status.starting": "Starting bridge…",
215
+ "ui.status.stopped": "Stopped",
216
+ "ui.status.updateApplied": "Update applied — restart Illustrator",
217
+ "ui.status.updateFailed": "Update failed",
218
+ "ui.status.waitingForClient": "waiting for client",
219
+ "ui.status.wsNoServer": "ws has no WebSocketServer",
220
+ "ui.toolbar.reload": "Reload panel",
221
+ "ui.toolbar.settings": "Settings",
222
+ "ui.update.appliedBody": "Close and reopen Illustrator to activate v{version}.",
223
+ "ui.update.appliedTitle": "Update applied.",
224
+ "ui.update.available": "Update available",
225
+ "ui.update.installerTitle": "If hot-swap fails or the release needs a fresh manifest",
226
+ "ui.update.later": "Later",
227
+ "ui.update.now": "Update now",
228
+ "ui.update.ok": "OK",
229
+ "ui.update.updating": "Updating..."
230
+ }
@@ -0,0 +1,230 @@
1
+ {
2
+ "msg.bridge.notConnected": "Illustrator no está conectado. Abre Illustrator con el panel «Synthetic Illustrator MCP» (que aloja el bridge en el puerto {port}).",
3
+ "msg.bridge.timeout": "tiempo de espera agotado ({ms}ms)",
4
+ "msg.doctor.bridgeConnecting": "Bridge: conectando a {url} (verificando que el panel Synthetic Illustrator MCP esté abierto en Illustrator)...",
5
+ "msg.doctor.bridgeFail": "No se puede acceder al bridge. Abre Illustrator con el panel Synthetic Illustrator MCP (Ventana → Extensiones → Synthetic Illustrator MCP) y confirma que diga \"Bridge active\".",
6
+ "msg.doctor.bridgeOk": "Bridge accesible — el panel Synthetic Illustrator MCP se está ejecutando dentro de Illustrator.",
7
+ "msg.doctor.language": "Idioma: {language} (origen: {source})",
8
+ "msg.doctor.licenseFailed": "Falló la verificación de la licencia: {message}",
9
+ "msg.doctor.licenseInvalid": "no válida",
10
+ "msg.doctor.licenseNotSet": "IL_MCP_LICENSE no está configurada. Obtén una licencia en https://synthetic.com.ar/illustrator-mcp",
11
+ "msg.doctor.licensePlanActive": "activa",
12
+ "msg.doctor.licenseValid": "Licencia válida ({plan})",
13
+ "msg.doctor.nodeOk": "Node.js {version} (se requiere >=18)",
14
+ "msg.doctor.nodeTooOld": "Node.js {version} — se necesita la versión 18 o posterior",
15
+ "msg.doctor.support": "¿Sigues con problemas? Pega esta salida en un ticket en https://synthetic.com.ar/dashboard/support",
16
+ "msg.doctor.title": "Synthetic Illustrator MCP — doctor",
17
+ "msg.healthcheck.hint": "Abre Illustrator con el panel Synthetic Illustrator MCP (aloja el bridge).",
18
+ "msg.host.errorAtLine": "{message} (línea {line})",
19
+ "msg.host.itemNotFound": "Elemento no encontrado: {name}",
20
+ "msg.host.layerNotFound": "No se encontró la capa: {name}",
21
+ "msg.host.noDocument": "No hay ningún documento abierto",
22
+ "msg.host.notACompoundPath": "No es un trazado compuesto: {name}",
23
+ "msg.host.notAGroup": "No es un grupo: {name}",
24
+ "msg.host.notAPath": "No es un trazado: {name}",
25
+ "msg.host.unknownCommand": "comando desconocido: {cmd}",
26
+ "msg.license.getLicense": "Obtén una licencia en https://synthetic.com.ar/illustrator-mcp",
27
+ "msg.license.invalidOrMissing": "Licencia no válida o faltante.",
28
+ "msg.license.noKey": "No hay clave de licencia. Configura IL_MCP_LICENSE en tu configuración MCP. Obtén una licencia en https://synthetic.com.ar/illustrator-mcp",
29
+ "msg.license.required": "Se requiere una licencia",
30
+ "msg.license.serverUnreachable": "No se puede contactar al servidor de licencias. Revisa tu conexión a internet.",
31
+ "msg.license.serverUnreachableRetry": "No se puede contactar al servidor de licencias. Se reintentará en la próxima llamada.",
32
+ "msg.server.instructions": "Illustrator MCP (Synthetic). Controla Adobe Illustrator a través de un plugin puente. Convención de tools: diagnóstico il_* ; dominio verbo_sustantivo (list_layers, get_document_info) ; escape hatches run_jsx / run_jsx_json. Empieza con il_healthcheck. Los elementos de página se direccionan por nombre (asignale uno con rename_item si un elemento no tiene) — usa list_items/get_item/get_selection para descubrir nombres. Cubre documentos, capas, elementos (mover/rotar/escalar/orden Z/agrupar), trazados, formas, texto, color/relleno/trazo/muestras, mesas de trabajo y exportación (PNG/JPG/SVG/PDF).",
33
+ "tool.add_area_text_frame": "Agrega un cuadro de texto de área: el texto fluye dentro de un rectángulo y hace salto de línea.",
34
+ "tool.add_artboard": "Agrega una nueva mesa de trabajo.",
35
+ "tool.add_layer": "Agrega una capa nueva al documento activo.",
36
+ "tool.add_shape_ellipse": "Agrega una elipse.",
37
+ "tool.add_shape_line": "Agrega un segmento de línea recta entre dos puntos.",
38
+ "tool.add_shape_polygon": "Agrega un polígono regular centrado en (cx, cy).",
39
+ "tool.add_shape_rectangle": "Agrega un rectángulo. top/left están en puntos, coordenadas del documento (Y hacia abajo).",
40
+ "tool.add_shape_rounded_rectangle": "Agrega un rectángulo redondeado.",
41
+ "tool.add_shape_star": "Agrega una estrella centrada en (cx, cy).",
42
+ "tool.add_spot_color": "Crea un nuevo color plano a partir de un valor CMYK/RGB/gris y lo registra en las muestras del documento.",
43
+ "tool.add_swatch": "Agrega una nueva muestra de color al documento.",
44
+ "tool.add_text_frame": "Agrega un cuadro de texto de punto (el texto se ancla en un solo punto y crece con el contenido) en (x, y).",
45
+ "tool.align_items": "Alinea elementos según su cuadro delimitador combinado, en un borde/eje.",
46
+ "tool.apply_brush_to_path": "Aplica un pincel existente al trazo de un trazado.",
47
+ "tool.apply_character_style": "Aplica un estilo de carácter con nombre a todo el contenido de un cuadro de texto.",
48
+ "tool.apply_drop_shadow_effect": "Aplica un efecto en vivo de sombra paralela (no destructivo, editable/eliminable en el panel Apariencia). Siempre negra -- los parámetros de color/modo de fusión del efecto rechazaron todos los valores probados en vivo, así que esto solo expone lo que se confirmó funcionando.",
49
+ "tool.apply_feather_effect": "Aplica un efecto en vivo de pluma (difumina suavemente el borde del elemento).",
50
+ "tool.apply_gradient_fill": "Rellena un elemento de página con un degradado existente.",
51
+ "tool.apply_gradient_stroke": "Aplica un degradado existente al trazo de un elemento de página.",
52
+ "tool.apply_live_effect_raw": "Escape hatch: aplica un efecto en vivo arbitrario por su nombre interno y un diccionario de parámetros XML crudo (ej. name='Adobe Drop Shadow', xml='<LiveEffect name=\"Adobe Drop Shadow\"><Dict>...</Dict></LiveEffect>'). Para efectos no cubiertos por una tool dedicada.",
53
+ "tool.apply_named_effect": "Aplica uno de 87 efectos en vivo de Illustrator confirmados como funcionales, por nombre corto, con parámetros por defecto (o un override de <Dict> XML crudo para control fino -- ver apply_live_effect_raw para el formato). Cubre la mayoría de Efecto > Efectos de Illustrator y Efecto > Efectos de Photoshop. No destructivo/editable en el panel Apariencia, igual que las 4 tools de efecto dedicadas (sombra paralela, pluma, esquinas redondeadas, trazado contorneado), que en cambio toman parámetros reales tipados y deberían preferirse cuando estén disponibles.",
54
+ "tool.apply_offset_path_effect": "Aplica un efecto en vivo de trazado contorneado (agranda/reduce el contorno de un trazado).",
55
+ "tool.apply_paragraph_style": "Aplica un estilo de párrafo con nombre a todo el contenido de un cuadro de texto.",
56
+ "tool.apply_pattern_fill": "Rellena un elemento de página con una muestra de patrón existente.",
57
+ "tool.apply_round_corners_effect": "Aplica un efecto en vivo de esquinas redondeadas a un trazado.",
58
+ "tool.apply_swatch": "Aplica una muestra existente como relleno o trazo de un elemento de página.",
59
+ "tool.break_symbol_link": "Rompe el vínculo de una instancia de símbolo, convirtiéndola de nuevo en arte editable normal. Devuelve el nombre del elemento resultante.",
60
+ "tool.bring_forward": "Mueve un elemento de página un paso hacia adelante en el orden de apilamiento de su capa.",
61
+ "tool.bring_to_front": "Trae un elemento de página al frente del orden de apilamiento de su capa.",
62
+ "tool.close_document": "Cierra el documento activo (save=true para guardarlo antes).",
63
+ "tool.convert_item_to_guide": "Convierte un elemento de trazado en una guía de regla no imprimible.",
64
+ "tool.create_document": "Crea un documento nuevo.",
65
+ "tool.create_gradient": "Crea un degradado lineal o radial con 2 o más puntos de color (posición 0-100). Devuelve el nombre del degradado.",
66
+ "tool.create_path_from_points": "Crea un PathItem a partir de un array de puntos de anclaje ({x,y} en puntos, coordenadas del documento con Y hacia abajo tal como se pasan aquí — la tool invierte internamente a la convención propia de Illustrator de Y hacia arriba). Solo segmentos rectos (sin manejadores bezier); usa set_path_point_handles para curvas después.",
67
+ "tool.create_swatch_group": "Crea un nuevo grupo de muestras (grupo de color) que contiene las muestras existentes indicadas.",
68
+ "tool.create_symbol_from_item": "Crea una nueva definición de símbolo a partir de un elemento de página. Illustrator reemplaza el elemento de origen en su lugar por una instancia del nuevo símbolo.",
69
+ "tool.delete_artboard": "Elimina una mesa de trabajo por índice (un documento debe conservar al menos una).",
70
+ "tool.delete_gradient": "Elimina un degradado del documento.",
71
+ "tool.delete_item": "Elimina un elemento de página por nombre.",
72
+ "tool.delete_layer": "Elimina una capa y todo lo que contiene.",
73
+ "tool.delete_swatch": "Elimina una muestra de color del documento.",
74
+ "tool.delete_symbol": "Elimina una definición de símbolo del documento (las instancias existentes se convierten en arte normal).",
75
+ "tool.deselect_all": "Borra la selección del documento activo.",
76
+ "tool.distribute_items": "Distribuye 3 o más elementos con espaciado igual entre sus bordes, a lo largo de un eje.",
77
+ "tool.duplicate_item": "Duplica un elemento de página. Devuelve el nombre (autogenerado) del nuevo elemento.",
78
+ "tool.duplicate_layer": "Duplica una capa y todo lo que contiene (Layer no tiene duplicate() directo en el DOM de Illustrator, así que esto crea una nueva capa y duplica cada elemento dentro de ella). Devuelve el nombre de la nueva capa.",
79
+ "tool.embed_placed_item": "Incrusta un elemento colocado vinculado en el documento (deja de referenciar el archivo externo).",
80
+ "tool.export_jpg": "Exporta el documento activo (o una mesa de trabajo) como JPEG.",
81
+ "tool.export_pdf": "Guarda el documento activo como PDF (mediante Guardar como, no Exportar — PDF es un formato de guardado nativo en Illustrator).",
82
+ "tool.export_png": "Exporta el documento activo (o una mesa de trabajo) como PNG-24 transparente.",
83
+ "tool.export_svg": "Exporta el documento activo como SVG.",
84
+ "tool.find_replace_text": "Busca y reemplaza una subcadena en todos los cuadros de texto del documento activo. Devuelve cuántos cuadros cambiaron.",
85
+ "tool.flip_item": "Voltea un elemento de página horizontal y/o verticalmente alrededor de su propio centro.",
86
+ "tool.get_document_info": "Información del documento activo: mesa de trabajo activa, cantidad de mesas de trabajo, espacio de color, unidades, capas.",
87
+ "tool.get_gradient": "Devuelve el tipo y los puntos de color de un degradado.",
88
+ "tool.get_item": "Información sobre un elemento de página por nombre: tipo, límites, capa y (para trazados) relleno/trazo.",
89
+ "tool.get_item_bounds": "Límites geométricos (izquierda, arriba, derecha, abajo, ancho, alto, en puntos) de un elemento de página.",
90
+ "tool.get_layer": "Información de una capa por nombre.",
91
+ "tool.get_path_points": "Devuelve los puntos de anclaje y manejadores bezier de un trazado (en la misma convención Y hacia abajo que toma create_path_from_points).",
92
+ "tool.get_ruler_units": "Devuelve las unidades de regla del documento.",
93
+ "tool.get_selection": "Lista los elementos de página actualmente seleccionados en el documento.",
94
+ "tool.get_text_contents": "Devuelve el contenido de texto de un cuadro de texto.",
95
+ "tool.group_items": "Agrupa elementos de página en un nuevo GroupItem. Devuelve el nombre del grupo.",
96
+ "tool.il_healthcheck": "Verifica la conexión con Illustrator: versión y documento activo.",
97
+ "tool.il_info": "Información de la app: versión, documentos abiertos.",
98
+ "tool.invert_selection": "Selecciona todos los elementos de página que NO están actualmente seleccionados, y deselecciona los que sí lo estaban.",
99
+ "tool.list_artboards": "Lista las mesas de trabajo del documento (nombre, límites).",
100
+ "tool.list_brushes": "Lista los pinceles del documento por nombre (la API de scripting de Illustrator no expone el tipo de pincel -- arte/caligráfico/patrón/dispersión -- así que no se incluye).",
101
+ "tool.list_character_styles": "Lista los estilos de carácter con nombre del documento.",
102
+ "tool.list_documents": "Lista los documentos abiertos.",
103
+ "tool.list_fonts": "Lista una muestra de los nombres PostScript de fuentes disponibles (las primeras 200 — Illustrator puede tener miles instaladas).",
104
+ "tool.list_gradients": "Lista los degradados del documento (nombre, tipo, cantidad de puntos de color).",
105
+ "tool.list_group_children": "Lista los hijos directos de un GroupItem.",
106
+ "tool.list_items": "Lista los elementos de página del documento activo (nombre, tipo, límites). Opcionalmente acotado a una capa por nombre.",
107
+ "tool.list_layers": "Lista el árbol de capas del documento activo (nombre, visible, bloqueada, cantidad de elementos por tipo).",
108
+ "tool.list_paragraph_styles": "Lista los estilos de párrafo con nombre del documento.",
109
+ "tool.list_patterns": "Lista las muestras de patrón del documento.",
110
+ "tool.list_placed_items": "Lista los archivos raster/vectoriales colocados (vinculados o incrustados) en el documento.",
111
+ "tool.list_spot_colors": "Lista los colores planos del documento.",
112
+ "tool.list_swatch_groups": "Lista los grupos de muestras (grupos de color) del documento y las muestras de cada uno.",
113
+ "tool.list_swatches": "Lista las muestras de color del documento.",
114
+ "tool.list_symbols": "Lista los símbolos del documento.",
115
+ "tool.make_clipping_mask": "Agrupa elementos y usa uno de ellos (maskItemName, debe ser un trazado/trazado compuesto) como máscara de recorte para el resto. Devuelve el nombre del grupo.",
116
+ "tool.make_compound_path": "Combina elementos de trazado en un único CompoundPathItem (por ejemplo, para formas de dona con agujeros). Devuelve el nombre del trazado compuesto.",
117
+ "tool.move_item": "Mueve un elemento de página a una posición absoluta (esquina superior izquierda de su cuadro delimitador, en puntos).",
118
+ "tool.move_item_to_layer": "Mueve un elemento de página a una capa diferente.",
119
+ "tool.move_layer": "Reordena una capa al frente, al fondo, o en relación a otra capa.",
120
+ "tool.open_document": "Abre un archivo.",
121
+ "tool.outline_text": "Convierte un cuadro de texto en contornos (trazados vectoriales editables). Devuelve el nombre del grupo resultante — el cuadro de texto original se reemplaza.",
122
+ "tool.place_symbol_instance": "Coloca una instancia de un símbolo existente en (x, y).",
123
+ "tool.play_action": "Reproduce una acción existente de Illustrator (del panel Acciones) por nombre y nombre de conjunto.",
124
+ "tool.release_clipping_mask": "Libera un grupo de recorte de vuelta a sus elementos individuales (quita el recorte y desagrupa).",
125
+ "tool.release_compound_path": "Libera un CompoundPathItem de vuelta a sus PathItems individuales.",
126
+ "tool.release_guide": "Convierte una guía de nuevo en un trazado normal y editable.",
127
+ "tool.relink_placed_item": "Vuelve a apuntar un elemento colocado a un archivo diferente en disco.",
128
+ "tool.rename_artboard": "Renombra una mesa de trabajo por índice.",
129
+ "tool.rename_item": "Renombra un elemento de página (los nombres de elementos son cómo otras tools se refieren a un elemento específico).",
130
+ "tool.rename_layer": "Renombra una capa.",
131
+ "tool.rename_symbol": "Renombra una definición de símbolo.",
132
+ "tool.resize_item": "Escala un elemento de página por porcentaje (100 = sin cambio) alrededor de su centro.",
133
+ "tool.rotate_item": "Rota un elemento de página en grados (positivo = sentido antihorario) alrededor de su centro.",
134
+ "tool.run_jsx": "Ejecuta ExtendScript arbitrario en Illustrator. El código puede usar 'return'. Devuelve {ok,data}.",
135
+ "tool.run_jsx_json": "Ejecuta ExtendScript que devuelve un valor serializable (JSON). Igual que run_jsx, pero pensado para datos.",
136
+ "tool.save_document": "Guarda el documento activo.",
137
+ "tool.save_document_as": "Guarda el documento activo como un nuevo archivo .ai.",
138
+ "tool.select_items": "Establece la selección del documento activo a los elementos de página indicados (por nombre). Pasa un array vacío para limpiar.",
139
+ "tool.select_same_fill_color": "Selecciona todos los elementos de página del documento cuyo color de relleno coincide exactamente con el de un elemento de referencia.",
140
+ "tool.send_backward": "Mueve un elemento de página un paso hacia atrás en el orden de apilamiento de su capa.",
141
+ "tool.send_to_back": "Envía un elemento de página al fondo del orden de apilamiento de su capa.",
142
+ "tool.set_active_artboard": "Establece qué índice de mesa de trabajo está activo (afecta a tools que por defecto usan 'la mesa de trabajo activa', p. ej. get_document_info).",
143
+ "tool.set_blend_mode": "Establece el modo de fusión de un elemento de página.",
144
+ "tool.set_fill_color": "Establece el color de relleno de un elemento de página, o elimina el relleno si se omite el color.",
145
+ "tool.set_group_clipped": "Nivel bajo: establece directamente si el elemento superior de un grupo existente se usa como su máscara de recorte.",
146
+ "tool.set_item_locked": "Bloquea o desbloquea un elemento de página.",
147
+ "tool.set_item_visible": "Muestra u oculta un elemento de página.",
148
+ "tool.set_layer_color": "Establece el color de selección/contorno de una capa (mostrado en el panel Capas y como color de resaltado de selección de sus elementos), no el arte.",
149
+ "tool.set_layer_locked": "Bloquea o desbloquea una capa.",
150
+ "tool.set_layer_visible": "Muestra u oculta una capa.",
151
+ "tool.set_opacity": "Establece la opacidad de un elemento de página (0-100).",
152
+ "tool.set_path_closed": "Abre o cierra un trazado.",
153
+ "tool.set_path_points": "Reemplaza por completo los puntos de anclaje de un trazado (segmentos rectos; misma convención Y hacia abajo).",
154
+ "tool.set_ruler_units": "Establece las unidades de regla del documento.",
155
+ "tool.set_stroke_cap": "Establece el estilo de remate de extremo del trazo de un trazado.",
156
+ "tool.set_stroke_color": "Establece el color de trazo de un elemento de página, o elimina el trazo si se omite el color.",
157
+ "tool.set_stroke_dashes": "Establece el patrón de guiones de un trazado (longitudes en puntos, ej. [4,2] para guion-espacio-guion-espacio). Pasa un array vacío para una línea sólida.",
158
+ "tool.set_stroke_join": "Establece el estilo de unión de esquinas del trazo de un trazado.",
159
+ "tool.set_stroke_miter_limit": "Establece el límite de inglete de un trazado (1-500; solo afecta a las uniones en inglete).",
160
+ "tool.set_stroke_width": "Establece el ancho de trazo de un elemento de página, en puntos.",
161
+ "tool.set_symbol_instance_symbol": "Vuelve a apuntar una instancia de símbolo existente a una definición de símbolo diferente.",
162
+ "tool.set_text_contents": "Establece el contenido de texto de un cuadro de texto.",
163
+ "tool.set_text_justification": "Establece la alineación de párrafo de un cuadro de texto.",
164
+ "tool.set_text_leading": "Establece el interlineado de un cuadro de texto, en puntos. Desactiva el interlineado automático (el texto lo usa por defecto), ya que un valor de interlineado asignado mientras está activo el automático se ignora silenciosamente.",
165
+ "tool.set_text_style": "Establece el estilo a nivel de carácter para todo el contenido de un cuadro de texto: fuente (nombre PostScript, ej. 'Helvetica-Bold'), tamaño (pt), color de relleno y/o tracking.",
166
+ "tool.shear_item": "Inclina (sesga) un elemento de página en grados a lo largo de un eje, alrededor de su propio centro.",
167
+ "tool.translate_item": "Mueve un elemento de página en relación a su posición actual, en puntos.",
168
+ "tool.ungroup_item": "Desagrupa un GroupItem, moviendo sus hijos hacia arriba al padre del grupo.",
169
+ "ui.i18n.language": "Idioma",
170
+ "ui.i18n.restartNote": "Las descripciones de las herramientas de IA cambian de idioma cuando reinicias el servidor MCP (o la app que lo ejecuta).",
171
+ "ui.i18n.saveFailed": "No se pudo guardar la preferencia de idioma. Solo se mantendrá durante esta sesión.",
172
+ "ui.i18n.saved": "Idioma guardado.",
173
+ "ui.log.backupFailed": "Falló la copia de seguridad de {file}: {message}",
174
+ "ui.log.bridgeError": "error del bridge: {message}",
175
+ "ui.log.clear": "limpiar",
176
+ "ui.log.clearTitle": "Limpiar registro",
177
+ "ui.log.clientConnected": "Cliente MCP conectado ({count})",
178
+ "ui.log.clientDisconnected": "Cliente MCP desconectado ({count})",
179
+ "ui.log.commitFailed": "No se pudo aplicar (se revirtió): {message}",
180
+ "ui.log.downloadFailed": "Falló la descarga de {file}: {message}",
181
+ "ui.log.downloading": "Descargando {file}...",
182
+ "ui.log.licenseSaveError": "Error al guardar la clave de licencia: {message}",
183
+ "ui.log.listening": "bridge escuchando en 127.0.0.1:{port}",
184
+ "ui.log.noUpdate": "No hay ninguna actualización para aplicar",
185
+ "ui.log.portInUse": "puerto {port} en uso: {message}",
186
+ "ui.log.portRetry": "el puerto {port} sigue en uso, reintentando ({attempt}/{max})...",
187
+ "ui.log.restartingBridge": "Reiniciando el bridge...",
188
+ "ui.log.shaMismatch": "El SHA256 de {file} no coincide (se obtuvo {got}..., se esperaba {expected}...)",
189
+ "ui.log.sizeDiffers": "El tamaño de {file} difiere del manifiesto ({got} vs {expected}) — continuando",
190
+ "ui.log.title": "Registro de actividad",
191
+ "ui.log.toggleTitle": "Mostrar/ocultar registro",
192
+ "ui.log.updateAborted": "Actualización cancelada: {reason}",
193
+ "ui.log.updateApplied": "Actualización v{version} aplicada. REINICIA ILLUSTRATOR para cargar el panel nuevo.",
194
+ "ui.log.updateNoLicense": "Falló la actualización: no hay ninguna clave de licencia guardada. Abre Configuración (⚙) y pega tu clave de licencia.",
195
+ "ui.log.wsLoadFailed": "no se pudo cargar 'ws': {message} (--enable-nodejs?)",
196
+ "ui.product.subtitle": "Bridge · en desarrollo",
197
+ "ui.settings.licenseEmpty": "Ingresa una clave de licencia antes de guardar.",
198
+ "ui.settings.licenseKey": "Clave de licencia",
199
+ "ui.settings.licenseNotSaved": "Aún no hay ninguna clave de licencia guardada — es necesaria para las actualizaciones.",
200
+ "ui.settings.licensePlaceholder": "Pega tu clave de licencia de Illustrator MCP",
201
+ "ui.settings.licenseSaveFailed": "No se pudo guardar la clave de licencia (ver registro).",
202
+ "ui.settings.licenseSaved": "Clave de licencia guardada.",
203
+ "ui.settings.saveLicense": "Guardar licencia",
204
+ "ui.shell.builtBy": "Creado por",
205
+ "ui.shell.openSite": "Abrir synthetic.com.ar",
206
+ "ui.status.active": "Bridge activo",
207
+ "ui.status.clientsMany": "{count} clientes MCP",
208
+ "ui.status.clientsOne": "{count} cliente MCP",
209
+ "ui.status.error": "Error: {message}",
210
+ "ui.status.nodeUnavailable": "Node/ws no disponible",
211
+ "ui.status.port": "Puerto {port}",
212
+ "ui.status.portOpenFailed": "No se pudo abrir el puerto {port}",
213
+ "ui.status.restart": "Reiniciar",
214
+ "ui.status.starting": "Iniciando el bridge…",
215
+ "ui.status.stopped": "Detenido",
216
+ "ui.status.updateApplied": "Actualización aplicada — reinicia Illustrator",
217
+ "ui.status.updateFailed": "Falló la actualización",
218
+ "ui.status.waitingForClient": "esperando al cliente",
219
+ "ui.status.wsNoServer": "ws no tiene WebSocketServer",
220
+ "ui.toolbar.reload": "Recargar panel",
221
+ "ui.toolbar.settings": "Configuración",
222
+ "ui.update.appliedBody": "Cierra y vuelve a abrir Illustrator para activar la v{version}.",
223
+ "ui.update.appliedTitle": "Actualización aplicada.",
224
+ "ui.update.available": "Actualización disponible",
225
+ "ui.update.installerTitle": "Si el reemplazo en caliente falla o la versión necesita un manifiesto nuevo",
226
+ "ui.update.later": "Más tarde",
227
+ "ui.update.now": "Actualizar ahora",
228
+ "ui.update.ok": "OK",
229
+ "ui.update.updating": "Actualizando..."
230
+ }