@synthetic-ai/premiere-mcp 2.3.1-dev.1 → 2.3.4
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.
- package/CHANGELOG.md +36 -0
- package/cep-plugin/CSXS/manifest.xml +1 -1
- package/cep-plugin/i18n-core.cjs +224 -0
- package/cep-plugin/i18n-locales.js +3 -0
- package/cep-plugin/i18n-panel.cjs +178 -0
- package/cep-plugin/index.html +60 -25
- package/cep-plugin/main.js +793 -689
- package/dist/bridge/file-bridge.js +5 -4
- package/dist/http-server.d.ts +1 -0
- package/dist/http-server.js +3 -0
- package/dist/i18n.d.ts +42 -0
- package/dist/i18n.js +69 -0
- package/dist/index.js +41 -31
- package/dist/license.js +8 -6
- package/dist/server.js +9 -5
- package/dist/tools/effects.js +3 -2
- package/dist/tools/export.js +3 -2
- package/dist/tools/transitions.js +3 -2
- package/i18n/i18n-core.cjs +224 -0
- package/i18n/locales/de.json +1488 -0
- package/i18n/locales/en.json +1488 -0
- package/i18n/locales/es.json +1488 -0
- package/i18n/locales/fr.json +1488 -0
- package/i18n/locales/hashes/de.json +1488 -0
- package/i18n/locales/hashes/es.json +1488 -0
- package/i18n/locales/hashes/fr.json +1488 -0
- package/i18n/locales/hashes/ja.json +1488 -0
- package/i18n/locales/hashes/pt-BR.json +1488 -0
- package/i18n/locales/ja.json +1488 -0
- package/i18n/locales/pt-BR.json +1488 -0
- package/i18n/node.cjs +124 -0
- package/package.json +67 -65
- package/scripts/package.mjs +18 -2
- package/scripts/sync-i18n.mjs +117 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* Generado por synthetic-idiomas (tools/i18n.mjs build) — no editar a mano. */
|
|
2
|
+
(function (r) { r.SyntheticLocales = r.SyntheticLocales || {}; r.SyntheticLocales["premiere-mcp"] = {"en":{"ui.i18n.language":"Language","ui.i18n.restartNote":"The AI tool descriptions switch language after you restart the MCP server (or the app that runs it).","ui.i18n.saved":"Language saved.","ui.i18n.saveFailed":"Couldn't save the language preference. It will only last for this session.","msg.bridge.blockedPattern":"Script contains blocked pattern: {pattern}","msg.bridge.parseFailed":"Failed to parse response: {error}","msg.bridge.scriptTooLarge":"Script exceeds {limit} size limit","msg.bridge.timeout":"Command timed out after {ms}ms. Is the CEP plugin running in Premiere Pro?","msg.doctor.allGood":"Everything looks good.","msg.doctor.language":"Language: {language}","msg.doctor.languageDefault":"Default. Change it with PREMIERE_PRO_MCP_LANG or in the panel Settings (⚙).","msg.doctor.languageFrom":"Chosen from {source}","msg.doctor.licenseExpires":"Expires: {date}","msg.doctor.licenseInvalid":"License validation failed","msg.doctor.licenseMissing":"PREMIERE_PRO_MCP_LICENSE not set","msg.doctor.licenseMissingDetail":"Add it to your MCP client config (claude_desktop_config.json or equivalent).","msg.doctor.licenseNoExpiration":"No expiration","msg.doctor.licensePresent":"License key present ({prefix}...)","msg.doctor.licenseValid":"License validates","msg.doctor.nodeTooOld":"Requires Node 18 or newer — update from nodejs.org","msg.doctor.os":"OS: {os}","msg.doctor.premiereFound":"Premiere Pro detected","msg.doctor.premiereNotFound":"Premiere Pro not found in the usual install location","msg.doctor.premiereNotFoundDetail":"Not fatal — the MCP server only needs Premiere Pro running when a tool actually calls it.","msg.doctor.someFailed":"Some checks failed.","msg.doctor.someFailedHint":"Fix the items above, or share this output with support at https://synthetic.com.ar/dashboard/support","msg.doctor.tempNotWritable":"Bridge temp directory not writable","msg.doctor.tempWritable":"Bridge temp directory writable","msg.doctor.title":"premiere-mcp doctor — checking your setup","msg.doctor.unknownReason":"Unknown reason","msg.help.doctor":"Check your setup (Node, license, Premiere Pro, temp dir)","msg.help.env":"Environment variables:","msg.help.envLang":"Language of tool descriptions and messages: {languages} (default: the panel setting, else English)","msg.help.envTempDir":"Shared temp directory (default: OS temp + /premiere-mcp-bridge)","msg.help.envTimeout":"Command timeout in ms (default: 30000)","msg.help.help":"Show this help message","msg.help.installCep":"Install the CEP plugin into Premiere Pro","msg.help.moreInfo":"More info: {url}","msg.help.start":"Start the MCP server (stdio transport)","msg.help.title":"MCP server for Adobe Premiere Pro ({count} tools)","msg.help.usage":"Usage:","msg.help.version":"Show version","msg.installCep.failed":"CEP installation failed. Try running manually:","msg.installCep.installing":"Installing CEP plugin...","msg.license.getLicense":"Get a license at https://synthetic.com.ar/premiere-mcp","msg.license.invalid":"Invalid or missing license.","msg.license.missing":"No license key. Set PREMIERE_PRO_MCP_LICENSE in your MCP config. Get a license at https://synthetic.com.ar/premiere-mcp","msg.license.required":"License required","msg.license.unreachable":"License server unreachable. Check your internet connection.","msg.resource.extendscriptReference":"Complete Premiere Pro ExtendScript API reference for writing custom scripts via execute_extendscript","msg.resource.instructions":"Instructions and best practices for using Premiere Pro via MCP tools","msg.tool.audioEffectsNote":"Static list of common Premiere Pro audio effects. Use apply_audio_effect with these exact names.","msg.tool.audioTransitionsNote":"Premiere Pro has 3 audio transitions. 'Constant Power' is the recommended default for music crossfades.","msg.tool.error":"Error: {message}","msg.tool.frameCaptured":"Frame captured successfully.","msg.tool.frameNotFound":"Frame export completed but file not found at: {path}","msg.tool.frameReadFailed":"Failed to read captured frame: {error}","msg.tool.videoEffectsNote":"Static list of common Premiere Pro video effects. Use apply_effect with these exact names.","msg.tool.videoTransitionsNote":"Static list of common Premiere Pro video transitions. Use add_transition with these exact names.","ui.bridge.activity.title":"Activity log","ui.bridge.controls.save":"Save","ui.bridge.controls.start":"Start bridge","ui.bridge.controls.stop":"Stop","ui.bridge.error.execTimeout":"ExtendScript execution timed out after {seconds} seconds. Premiere Pro may be busy or unresponsive.","ui.bridge.footer.builtBy":"Built by","ui.bridge.header.openSite":"Open synthetic.com.ar","ui.bridge.license.empty":"Enter a license key before saving.","ui.bridge.license.none":"No license key saved yet — required for updates.","ui.bridge.license.requiredForUpdate":"License key required before updating.","ui.bridge.license.saveFailed":"Failed to save license key (see log).","ui.bridge.license.saved":"License key saved.","ui.bridge.log.autoStart":"Temp directory exists, auto-starting...","ui.bridge.log.createDirFailed":"Error creating dir: {error}","ui.bridge.log.downloading":"Downloading {file}...","ui.bridge.log.execTimeout":"Execution timed out after {seconds}s","ui.bridge.log.executing":"Executing: {file} ({chars} chars)","ui.bridge.log.libraryLoaded":"premiere.jsx loaded: {result}","ui.bridge.log.licenseSaveError":"Error saving license key: {error}","ui.bridge.log.loaded":"{name} loaded","ui.bridge.log.noUpdate":"No update to apply","ui.bridge.log.readFailed":"Failed to read: {file}","ui.bridge.log.resultError":"Result: Error — {error}","ui.bridge.log.resultOk":"Result: OK","ui.bridge.log.resultOkEmpty":"Result: OK (null/undefined)","ui.bridge.log.resultOkRaw":"Result: OK (raw)","ui.bridge.log.resultRaw":"Result: {result}","ui.bridge.log.sizeDiffers":"Size differs from manifest for {file} ({actual} vs {expected}) — continuing","ui.bridge.log.started":"Bridge started. Temp dir: {dir}","ui.bridge.log.stopped":"Bridge stopped","ui.bridge.log.tempDirMissing":"Please set a temp directory","ui.bridge.log.tempDirSaved":"Temp directory saved: {dir}","ui.bridge.log.unknownError":"unknown","ui.bridge.log.updateAborted":"Update aborted: {reason}","ui.bridge.log.updateApplied":"Update v{version} applied. RESTART PREMIERE PRO to load the new panel.","ui.bridge.log.updateNoLicense":"Update failed: no license key saved. Open Settings and paste your Premiere MCP license key.","ui.bridge.log.versionUnknown":"Warning: Could not detect Premiere Pro version","ui.bridge.log.writeFailed":"Error writing {file}: {error}","ui.bridge.product.statusReady":"Panel ready","ui.bridge.product.subtitle":"Bridge · {count} tools","ui.bridge.settings.licenseKey":"License key","ui.bridge.settings.licensePlaceholder":"Paste your Premiere MCP license key","ui.bridge.settings.saveLicense":"Save license","ui.bridge.stats.commandsProcessed":"Commands processed:","ui.bridge.status.errors":"Running — {count} consecutive error(s)","ui.bridge.status.polling":"Running — polling {dir}","ui.bridge.status.ready":"Ready — click Start Bridge","ui.bridge.status.running":"Running — {count} commands processed","ui.bridge.status.stopped":"Stopped","ui.bridge.status.unresponsive":"Running — Premiere Pro unresponsive ({count} errors)","ui.bridge.status.updateApplied":"Update applied — restart Premiere Pro","ui.bridge.status.updateFailed":"Update failed","ui.bridge.tempDir.label":"Temp directory","ui.bridge.toolbar.reload":"Reload panel","ui.bridge.toolbar.settings":"Settings","ui.bridge.update.appliedBody":"Close and reopen Premiere Pro to activate v{version}.","ui.bridge.update.appliedTitle":"Update applied.","ui.bridge.update.available":"Update available","ui.bridge.update.backupFailed":"Backup failed for {file}: {error}","ui.bridge.update.commitFailed":"Commit failed (rolled back): {error}","ui.bridge.update.downloadFailed":"Download failed for {file}: {error}","ui.bridge.update.installerHint":"If hot-swap fails or the release needs a fresh manifest","ui.bridge.update.later":"Later","ui.bridge.update.now":"Update now","ui.bridge.update.ok":"OK","ui.bridge.update.shaMismatch":"SHA256 mismatch for {file} (got {got}..., expected {expected}...)","ui.bridge.update.updating":"Updating...","ui.chat.context.noProject":"No project open","ui.chat.context.notConnected":"Not connected to Premiere Pro","ui.chat.context.refresh":"Refresh","ui.chat.error.api":"API error","ui.chat.error.connectionFailed":"connection failed","ui.chat.error.network":"Network error: {error}","ui.chat.error.noResponse":"No response received","ui.chat.error.parse":"Failed to parse response: {error}","ui.chat.error.timeout":"Request timed out ({seconds}s)","ui.chat.error.unknown":"Unknown error","ui.chat.error.unknownProvider":"Unknown provider: {provider}","ui.chat.field.apiKey":"API Key","ui.chat.field.model":"Model","ui.chat.header.clear":"Clear chat","ui.chat.header.disconnect":"Disconnect","ui.chat.header.settings":"Settings","ui.chat.input.placeholder":"Ask me to edit your project...","ui.chat.input.send":"Send","ui.chat.login.apiKeyPlaceholder":"Enter your API key...","ui.chat.login.connect":"Connect & Start Chatting","ui.chat.login.connecting":"Connecting...","ui.chat.login.emptyKey":"Please enter an API key.","ui.chat.login.failed":"Connection failed: {error}","ui.chat.login.keyHint":"Get a key at {link}","ui.chat.login.privacy":"Your API key is stored locally and never leaves this machine.","ui.chat.login.subtitle":"Connect an AI provider to control Premiere Pro with natural language.","ui.chat.login.title":"Premiere Pro AI Chat","ui.chat.login.toggleKey":"Show/hide key","ui.chat.message.empty":"(empty response)","ui.chat.message.error":"**Error:** {error}","ui.chat.message.keyInvalid":"**Warning:** Saved API key may be invalid — {error}. You can update it in Settings.","ui.chat.script.error":"Error: {error}","ui.chat.script.execute":"Execute","ui.chat.script.noReturn":"(no return value)","ui.chat.script.parseError":"Parse error: {result}","ui.chat.script.preview":"ExtendScript (preview)","ui.chat.script.result":"ExtendScript Result","ui.chat.script.running":"Running...","ui.chat.settings.autoExec":"Auto-execute ExtendScript (uncheck to preview first)","ui.chat.settings.changeApiKey":"Change API Key","ui.chat.settings.maxTokens":"Max Tokens","ui.chat.settings.save":"Save","ui.chat.settings.systemPrompt":"System Prompt (appended to default)","ui.chat.settings.systemPromptPlaceholder":"Add custom instructions...","ui.chat.settings.temperature":"Temperature","ui.chat.settings.title":"Settings","ui.chat.status.error":"Error","ui.chat.status.executing":"Executing script...","ui.chat.status.ready":"Ready","ui.chat.status.thinking":"Thinking...","ui.chat.suggestion.dissolve":"Add a cross dissolve to all cuts","ui.chat.suggestion.export":"Export as H.264","ui.chat.suggestion.exportPrompt":"Export the active sequence as H.264","ui.chat.suggestion.timeline":"What clips are in my timeline?","ui.chat.tokens":"{input} in / {output} out","ui.chat.welcome.body":"I can help you edit in Premiere Pro. Try:","ui.chat.welcome.title":"Welcome!"},"es":{"msg.bridge.blockedPattern":"El script contiene un patrón bloqueado: {pattern}","msg.bridge.parseFailed":"No se pudo analizar la respuesta: {error}","msg.bridge.scriptTooLarge":"El script supera el límite de tamaño de {limit}","msg.bridge.timeout":"El comando superó el tiempo de espera tras {ms} ms. ¿Está en ejecución el plugin CEP en Premiere Pro?","msg.doctor.allGood":"Todo se ve bien.","msg.doctor.language":"Idioma: {language}","msg.doctor.languageDefault":"Predeterminado. Cámbialo con PREMIERE_PRO_MCP_LANG o en la Configuración (⚙) del panel.","msg.doctor.languageFrom":"Tomado de {source}","msg.doctor.licenseExpires":"Vence: {date}","msg.doctor.licenseInvalid":"Falló la validación de la licencia","msg.doctor.licenseMissing":"PREMIERE_PRO_MCP_LICENSE no está definida","msg.doctor.licenseMissingDetail":"Agrégala a la configuración de tu cliente MCP (claude_desktop_config.json o equivalente).","msg.doctor.licenseNoExpiration":"Sin vencimiento","msg.doctor.licensePresent":"Clave de licencia presente ({prefix}...)","msg.doctor.licenseValid":"La licencia es válida","msg.doctor.nodeTooOld":"Requiere Node 18 o posterior — actualízalo desde nodejs.org","msg.doctor.os":"SO: {os}","msg.doctor.premiereFound":"Premiere Pro detectado","msg.doctor.premiereNotFound":"No se encontró Premiere Pro en la ubicación de instalación habitual","msg.doctor.premiereNotFoundDetail":"No es grave — el servidor MCP solo necesita Premiere Pro en ejecución cuando una herramienta realmente lo usa.","msg.doctor.someFailed":"Algunas comprobaciones fallaron.","msg.doctor.someFailedHint":"Corrige los elementos anteriores o comparte esta salida con soporte en https://synthetic.com.ar/dashboard/support","msg.doctor.tempNotWritable":"No se puede escribir en el directorio temporal del bridge","msg.doctor.tempWritable":"Se puede escribir en el directorio temporal del bridge","msg.doctor.title":"premiere-mcp doctor — revisando tu configuración","msg.doctor.unknownReason":"Motivo desconocido","msg.help.doctor":"Revisa tu configuración (Node, licencia, Premiere Pro, directorio temporal)","msg.help.env":"Variables de entorno:","msg.help.envLang":"Idioma de las descripciones de herramientas y de los mensajes: {languages} (predeterminado: el ajuste del panel o, si no hay, inglés)","msg.help.envTempDir":"Directorio temporal compartido (predeterminado: temporal del SO + /premiere-mcp-bridge)","msg.help.envTimeout":"Tiempo de espera de los comandos en ms (predeterminado: 30000)","msg.help.help":"Muestra este mensaje de ayuda","msg.help.installCep":"Instala el plugin CEP en Premiere Pro","msg.help.moreInfo":"Más información: {url}","msg.help.start":"Inicia el servidor MCP (transporte stdio)","msg.help.title":"Servidor MCP para Adobe Premiere Pro ({count} herramientas)","msg.help.usage":"Uso:","msg.help.version":"Muestra la versión","msg.installCep.failed":"Falló la instalación de CEP. Intenta ejecutarlo manualmente:","msg.installCep.installing":"Instalando el plugin CEP...","msg.license.getLicense":"Obtén una licencia en https://synthetic.com.ar/premiere-mcp","msg.license.invalid":"Licencia no válida o ausente.","msg.license.missing":"No hay clave de licencia. Define PREMIERE_PRO_MCP_LICENSE en tu configuración de MCP. Obtén una licencia en https://synthetic.com.ar/premiere-mcp","msg.license.required":"Se requiere licencia","msg.license.unreachable":"No se puede conectar con el servidor de licencias. Revisa tu conexión a internet.","msg.resource.extendscriptReference":"Referencia completa de la API de ExtendScript de Premiere Pro para escribir scripts personalizados mediante execute_extendscript","msg.resource.instructions":"Instrucciones y buenas prácticas para usar Premiere Pro mediante herramientas MCP","msg.tool.audioEffectsNote":"Lista estática de efectos de audio comunes de Premiere Pro. Usa apply_audio_effect con estos nombres exactos.","msg.tool.audioTransitionsNote":"Premiere Pro tiene 3 transiciones de audio. 'Constant Power' es la opción predeterminada recomendada para fundidos cruzados de música.","msg.tool.error":"Error: {message}","msg.tool.frameCaptured":"Fotograma capturado correctamente.","msg.tool.frameNotFound":"La exportación del fotograma terminó, pero no se encontró el archivo en: {path}","msg.tool.frameReadFailed":"No se pudo leer el fotograma capturado: {error}","msg.tool.videoEffectsNote":"Lista estática de efectos de video comunes de Premiere Pro. Usa apply_effect con estos nombres exactos.","msg.tool.videoTransitionsNote":"Lista estática de transiciones de video comunes de Premiere Pro. Usa add_transition con estos nombres exactos.","ui.bridge.activity.title":"Registro de actividad","ui.bridge.controls.save":"Guardar","ui.bridge.controls.start":"Iniciar bridge","ui.bridge.controls.stop":"Detener","ui.bridge.error.execTimeout":"La ejecución de ExtendScript superó el tiempo de espera tras {seconds} segundos. Es posible que Premiere Pro esté ocupado o no responda.","ui.bridge.footer.builtBy":"Creado por","ui.bridge.header.openSite":"Abrir synthetic.com.ar","ui.bridge.license.empty":"Ingresa una clave de licencia antes de guardar.","ui.bridge.license.none":"Aún no hay clave de licencia guardada — se requiere para actualizar.","ui.bridge.license.requiredForUpdate":"Se requiere una clave de licencia para actualizar.","ui.bridge.license.saveFailed":"No se pudo guardar la clave de licencia (ver registro).","ui.bridge.license.saved":"Clave de licencia guardada.","ui.bridge.log.autoStart":"El directorio temporal existe; iniciando automáticamente...","ui.bridge.log.createDirFailed":"Error al crear el directorio: {error}","ui.bridge.log.downloading":"Descargando {file}...","ui.bridge.log.execTimeout":"La ejecución superó el tiempo de espera tras {seconds}s","ui.bridge.log.executing":"Ejecutando: {file} ({chars} caracteres)","ui.bridge.log.libraryLoaded":"premiere.jsx cargado: {result}","ui.bridge.log.licenseSaveError":"Error al guardar la clave de licencia: {error}","ui.bridge.log.loaded":"{name} cargado","ui.bridge.log.noUpdate":"No hay ninguna actualización para aplicar","ui.bridge.log.readFailed":"No se pudo leer: {file}","ui.bridge.log.resultError":"Resultado: Error — {error}","ui.bridge.log.resultOk":"Resultado: OK","ui.bridge.log.resultOkEmpty":"Resultado: OK (null/undefined)","ui.bridge.log.resultOkRaw":"Resultado: OK (sin procesar)","ui.bridge.log.resultRaw":"Resultado: {result}","ui.bridge.log.sizeDiffers":"El tamaño de {file} no coincide con el manifiesto ({actual} vs. {expected}) — continuando","ui.bridge.log.started":"Bridge iniciado. Directorio temporal: {dir}","ui.bridge.log.stopped":"Bridge detenido","ui.bridge.log.tempDirMissing":"Configura un directorio temporal","ui.bridge.log.tempDirSaved":"Directorio temporal guardado: {dir}","ui.bridge.log.unknownError":"desconocido","ui.bridge.log.updateAborted":"Actualización cancelada: {reason}","ui.bridge.log.updateApplied":"Actualización v{version} aplicada. REINICIA PREMIERE PRO para cargar el nuevo panel.","ui.bridge.log.updateNoLicense":"Falló la actualización: no hay clave de licencia guardada. Abre Configuración y pega tu clave de licencia de Premiere MCP.","ui.bridge.log.versionUnknown":"Advertencia: no se pudo detectar la versión de Premiere Pro","ui.bridge.log.writeFailed":"Error al escribir {file}: {error}","ui.bridge.product.statusReady":"Panel listo","ui.bridge.product.subtitle":"Bridge · {count} herramientas","ui.bridge.settings.licenseKey":"Clave de licencia","ui.bridge.settings.licensePlaceholder":"Pega tu clave de licencia de Premiere MCP","ui.bridge.settings.saveLicense":"Guardar licencia","ui.bridge.stats.commandsProcessed":"Comandos procesados:","ui.bridge.status.errors":"En ejecución — {count} error(es) consecutivo(s)","ui.bridge.status.polling":"En ejecución — sondeando {dir}","ui.bridge.status.ready":"Listo — haz clic en Iniciar bridge","ui.bridge.status.running":"En ejecución — {count} comandos procesados","ui.bridge.status.stopped":"Detenido","ui.bridge.status.unresponsive":"En ejecución — Premiere Pro no responde ({count} errores)","ui.bridge.status.updateApplied":"Actualización aplicada — reinicia Premiere Pro","ui.bridge.status.updateFailed":"Falló la actualización","ui.bridge.tempDir.label":"Directorio temporal","ui.bridge.toolbar.reload":"Recargar panel","ui.bridge.toolbar.settings":"Configuración","ui.bridge.update.appliedBody":"Cierra y vuelve a abrir Premiere Pro para activar la v{version}.","ui.bridge.update.appliedTitle":"Actualización aplicada.","ui.bridge.update.available":"Actualización disponible","ui.bridge.update.backupFailed":"Falló la copia de seguridad de {file}: {error}","ui.bridge.update.commitFailed":"Falló la confirmación (se revirtió): {error}","ui.bridge.update.downloadFailed":"Falló la descarga de {file}: {error}","ui.bridge.update.installerHint":"Si el reemplazo en caliente falla o la versión necesita un manifiesto nuevo","ui.bridge.update.later":"Más tarde","ui.bridge.update.now":"Actualizar ahora","ui.bridge.update.ok":"Aceptar","ui.bridge.update.shaMismatch":"El SHA256 de {file} no coincide (se obtuvo {got}..., se esperaba {expected}...)","ui.bridge.update.updating":"Actualizando...","ui.chat.context.noProject":"No hay ningún proyecto abierto","ui.chat.context.notConnected":"Sin conexión con Premiere Pro","ui.chat.context.refresh":"Actualizar","ui.chat.error.api":"Error de la API","ui.chat.error.connectionFailed":"falló la conexión","ui.chat.error.network":"Error de red: {error}","ui.chat.error.noResponse":"No se recibió respuesta","ui.chat.error.parse":"No se pudo analizar la respuesta: {error}","ui.chat.error.timeout":"La solicitud superó el tiempo de espera ({seconds}s)","ui.chat.error.unknown":"Error desconocido","ui.chat.error.unknownProvider":"Proveedor desconocido: {provider}","ui.chat.field.apiKey":"Clave de API","ui.chat.field.model":"Modelo","ui.chat.header.clear":"Borrar chat","ui.chat.header.disconnect":"Desconectar","ui.chat.header.settings":"Configuración","ui.chat.input.placeholder":"Pídeme que edite tu proyecto...","ui.chat.input.send":"Enviar","ui.chat.login.apiKeyPlaceholder":"Ingresa tu clave de API...","ui.chat.login.connect":"Conectar y empezar a chatear","ui.chat.login.connecting":"Conectando...","ui.chat.login.emptyKey":"Ingresa una clave de API.","ui.chat.login.failed":"Falló la conexión: {error}","ui.chat.login.keyHint":"Obtén una clave en {link}","ui.chat.login.privacy":"Tu clave de API se guarda localmente y nunca sale de este equipo.","ui.chat.login.subtitle":"Conecta un proveedor de IA para controlar Premiere Pro con lenguaje natural.","ui.chat.login.title":"Chat de IA para Premiere Pro","ui.chat.login.toggleKey":"Mostrar/ocultar clave","ui.chat.message.empty":"(respuesta vacía)","ui.chat.message.error":"**Error:** {error}","ui.chat.message.keyInvalid":"**Advertencia:** es posible que la clave de API guardada no sea válida — {error}. Puedes actualizarla en Configuración.","ui.chat.script.error":"Error: {error}","ui.chat.script.execute":"Ejecutar","ui.chat.script.noReturn":"(sin valor de retorno)","ui.chat.script.parseError":"Error de análisis: {result}","ui.chat.script.preview":"ExtendScript (vista previa)","ui.chat.script.result":"Resultado de ExtendScript","ui.chat.script.running":"Ejecutando...","ui.chat.settings.autoExec":"Ejecutar ExtendScript automáticamente (desmarca para previsualizar antes)","ui.chat.settings.changeApiKey":"Cambiar clave de API","ui.chat.settings.maxTokens":"Tokens máximos","ui.chat.settings.save":"Guardar","ui.chat.settings.systemPrompt":"Prompt del sistema (se agrega al predeterminado)","ui.chat.settings.systemPromptPlaceholder":"Agrega instrucciones personalizadas...","ui.chat.settings.temperature":"Temperatura","ui.chat.settings.title":"Configuración","ui.chat.status.error":"Error","ui.chat.status.executing":"Ejecutando script...","ui.chat.status.ready":"Listo","ui.chat.status.thinking":"Pensando...","ui.chat.suggestion.dissolve":"Agrega una disolución cruzada a todos los cortes","ui.chat.suggestion.export":"Exportar como H.264","ui.chat.suggestion.exportPrompt":"Exporta la secuencia activa como H.264","ui.chat.suggestion.timeline":"¿Qué clips hay en mi línea de tiempo?","ui.chat.tokens":"{input} entrada / {output} salida","ui.chat.welcome.body":"Puedo ayudarte a editar en Premiere Pro. Prueba:","ui.chat.welcome.title":"¡Bienvenido!","ui.i18n.language":"Idioma","ui.i18n.restartNote":"Las descripciones de las herramientas de IA cambian de idioma después de reiniciar el servidor MCP (o la app que lo ejecuta).","ui.i18n.saveFailed":"No se pudo guardar la preferencia de idioma. Solo se mantendrá durante esta sesión.","ui.i18n.saved":"Idioma guardado."},"pt-BR":{"msg.bridge.blockedPattern":"O script contém um padrão bloqueado: {pattern}","msg.bridge.parseFailed":"Falha ao interpretar a resposta: {error}","msg.bridge.scriptTooLarge":"O script excede o limite de tamanho de {limit}","msg.bridge.timeout":"O comando excedeu o tempo limite de {ms}ms. O plugin CEP está em execução no Premiere Pro?","msg.doctor.allGood":"Tudo certo.","msg.doctor.language":"Idioma: {language}","msg.doctor.languageDefault":"Padrão. Altere com PREMIERE_PRO_MCP_LANG ou nas Configurações do painel (⚙).","msg.doctor.languageFrom":"Definido em {source}","msg.doctor.licenseExpires":"Expira em: {date}","msg.doctor.licenseInvalid":"Falha na validação da licença","msg.doctor.licenseMissing":"PREMIERE_PRO_MCP_LICENSE não está definida","msg.doctor.licenseMissingDetail":"Adicione-a à configuração do seu cliente MCP (claude_desktop_config.json ou equivalente).","msg.doctor.licenseNoExpiration":"Sem expiração","msg.doctor.licensePresent":"Chave de licença presente ({prefix}...)","msg.doctor.licenseValid":"Licença válida","msg.doctor.nodeTooOld":"Requer Node 18 ou mais recente — atualize em nodejs.org","msg.doctor.os":"SO: {os}","msg.doctor.premiereFound":"Premiere Pro detectado","msg.doctor.premiereNotFound":"Premiere Pro não encontrado no local de instalação habitual","msg.doctor.premiereNotFoundDetail":"Não é fatal — o servidor MCP só precisa do Premiere Pro em execução quando uma ferramenta realmente o chama.","msg.doctor.someFailed":"Algumas verificações falharam.","msg.doctor.someFailedHint":"Corrija os itens acima ou compartilhe esta saída com o suporte em https://synthetic.com.ar/dashboard/support","msg.doctor.tempNotWritable":"Sem permissão de gravação na pasta temporária da ponte","msg.doctor.tempWritable":"Pasta temporária da ponte com permissão de gravação","msg.doctor.title":"premiere-mcp doctor — verificando sua configuração","msg.doctor.unknownReason":"Motivo desconhecido","msg.help.doctor":"Verifica sua configuração (Node, licença, Premiere Pro, pasta temporária)","msg.help.env":"Variáveis de ambiente:","msg.help.envLang":"Idioma das descrições das ferramentas e das mensagens: {languages} (padrão: a configuração do painel ou, se não houver, inglês)","msg.help.envTempDir":"Pasta temporária compartilhada (padrão: pasta temporária do sistema + /premiere-mcp-bridge)","msg.help.envTimeout":"Tempo limite dos comandos em ms (padrão: 30000)","msg.help.help":"Mostra esta mensagem de ajuda","msg.help.installCep":"Instala o plugin CEP no Premiere Pro","msg.help.moreInfo":"Mais informações: {url}","msg.help.start":"Inicia o servidor MCP (transporte stdio)","msg.help.title":"Servidor MCP para o Adobe Premiere Pro ({count} ferramentas)","msg.help.usage":"Uso:","msg.help.version":"Mostra a versão","msg.installCep.failed":"Falha na instalação do plugin CEP. Tente executar manualmente:","msg.installCep.installing":"Instalando o plugin CEP...","msg.license.getLicense":"Obtenha uma licença em https://synthetic.com.ar/premiere-mcp","msg.license.invalid":"Licença inválida ou ausente.","msg.license.missing":"Nenhuma chave de licença. Defina PREMIERE_PRO_MCP_LICENSE na configuração do MCP. Obtenha uma licença em https://synthetic.com.ar/premiere-mcp","msg.license.required":"Licença necessária","msg.license.unreachable":"Servidor de licenças inacessível. Verifique sua conexão com a internet.","msg.resource.extendscriptReference":"Referência completa da API ExtendScript do Premiere Pro para escrever scripts personalizados via execute_extendscript","msg.resource.instructions":"Instruções e boas práticas para usar o Premiere Pro por meio das ferramentas MCP","msg.tool.audioEffectsNote":"Lista estática de efeitos de áudio comuns do Premiere Pro. Use apply_audio_effect com estes nomes exatos.","msg.tool.audioTransitionsNote":"O Premiere Pro tem 3 transições de áudio. 'Constant Power' é o padrão recomendado para crossfades de música.","msg.tool.error":"Erro: {message}","msg.tool.frameCaptured":"Quadro capturado com sucesso.","msg.tool.frameNotFound":"A exportação do quadro foi concluída, mas o arquivo não foi encontrado em: {path}","msg.tool.frameReadFailed":"Falha ao ler o quadro capturado: {error}","msg.tool.videoEffectsNote":"Lista estática de efeitos de vídeo comuns do Premiere Pro. Use apply_effect com estes nomes exatos.","msg.tool.videoTransitionsNote":"Lista estática de transições de vídeo comuns do Premiere Pro. Use add_transition com estes nomes exatos.","ui.bridge.activity.title":"Registro de atividades","ui.bridge.controls.save":"Salvar","ui.bridge.controls.start":"Iniciar ponte","ui.bridge.controls.stop":"Parar","ui.bridge.error.execTimeout":"A execução do ExtendScript excedeu o tempo limite de {seconds} segundos. O Premiere Pro pode estar ocupado ou sem resposta.","ui.bridge.footer.builtBy":"Criado por","ui.bridge.header.openSite":"Abrir synthetic.com.ar","ui.bridge.license.empty":"Insira uma chave de licença antes de salvar.","ui.bridge.license.none":"Nenhuma chave de licença salva — necessária para atualizações.","ui.bridge.license.requiredForUpdate":"Chave de licença necessária para atualizar.","ui.bridge.license.saveFailed":"Falha ao salvar a chave de licença (veja o registro).","ui.bridge.license.saved":"Chave de licença salva.","ui.bridge.log.autoStart":"Pasta temporária encontrada, iniciando automaticamente...","ui.bridge.log.createDirFailed":"Erro ao criar a pasta: {error}","ui.bridge.log.downloading":"Baixando {file}...","ui.bridge.log.execTimeout":"Tempo de execução esgotado após {seconds}s","ui.bridge.log.executing":"Executando: {file} ({chars} caracteres)","ui.bridge.log.libraryLoaded":"premiere.jsx carregado: {result}","ui.bridge.log.licenseSaveError":"Erro ao salvar a chave de licença: {error}","ui.bridge.log.loaded":"{name} carregado","ui.bridge.log.noUpdate":"Nenhuma atualização para aplicar","ui.bridge.log.readFailed":"Falha ao ler: {file}","ui.bridge.log.resultError":"Resultado: Erro — {error}","ui.bridge.log.resultOk":"Resultado: OK","ui.bridge.log.resultOkEmpty":"Resultado: OK (null/undefined)","ui.bridge.log.resultOkRaw":"Resultado: OK (bruto)","ui.bridge.log.resultRaw":"Resultado: {result}","ui.bridge.log.sizeDiffers":"Tamanho diferente do manifesto para {file} ({actual} vs {expected}) — continuando","ui.bridge.log.started":"Ponte iniciada. Pasta temporária: {dir}","ui.bridge.log.stopped":"Ponte parada","ui.bridge.log.tempDirMissing":"Defina uma pasta temporária","ui.bridge.log.tempDirSaved":"Pasta temporária salva: {dir}","ui.bridge.log.unknownError":"desconhecido","ui.bridge.log.updateAborted":"Atualização cancelada: {reason}","ui.bridge.log.updateApplied":"Atualização v{version} aplicada. REINICIE O PREMIERE PRO para carregar o novo painel.","ui.bridge.log.updateNoLicense":"Falha na atualização: nenhuma chave de licença salva. Abra Configurações e cole sua chave de licença do Premiere MCP.","ui.bridge.log.versionUnknown":"Aviso: não foi possível detectar a versão do Premiere Pro","ui.bridge.log.writeFailed":"Erro ao gravar {file}: {error}","ui.bridge.product.statusReady":"Painel pronto","ui.bridge.product.subtitle":"Bridge · {count} ferramentas","ui.bridge.settings.licenseKey":"Chave de licença","ui.bridge.settings.licensePlaceholder":"Cole sua chave de licença do Premiere MCP","ui.bridge.settings.saveLicense":"Salvar licença","ui.bridge.stats.commandsProcessed":"Comandos processados:","ui.bridge.status.errors":"Em execução — {count} erro(s) consecutivo(s)","ui.bridge.status.polling":"Em execução — monitorando {dir}","ui.bridge.status.ready":"Pronto — clique em Iniciar ponte","ui.bridge.status.running":"Em execução — {count} comandos processados","ui.bridge.status.stopped":"Parado","ui.bridge.status.unresponsive":"Em execução — Premiere Pro sem resposta ({count} erros)","ui.bridge.status.updateApplied":"Atualização aplicada — reinicie o Premiere Pro","ui.bridge.status.updateFailed":"Falha na atualização","ui.bridge.tempDir.label":"Pasta temporária","ui.bridge.toolbar.reload":"Recarregar painel","ui.bridge.toolbar.settings":"Configurações","ui.bridge.update.appliedBody":"Feche e reabra o Premiere Pro para ativar a v{version}.","ui.bridge.update.appliedTitle":"Atualização aplicada.","ui.bridge.update.available":"Atualização disponível","ui.bridge.update.backupFailed":"Falha no backup de {file}: {error}","ui.bridge.update.commitFailed":"Falha ao confirmar (alterações revertidas): {error}","ui.bridge.update.downloadFailed":"Falha no download de {file}: {error}","ui.bridge.update.installerHint":"Se a troca a quente falhar ou a versão exigir um manifesto novo","ui.bridge.update.later":"Depois","ui.bridge.update.now":"Atualizar agora","ui.bridge.update.ok":"OK","ui.bridge.update.shaMismatch":"SHA256 não confere para {file} (obtido {got}..., esperado {expected}...)","ui.bridge.update.updating":"Atualizando...","ui.chat.context.noProject":"Nenhum projeto aberto","ui.chat.context.notConnected":"Não conectado ao Premiere Pro","ui.chat.context.refresh":"Atualizar","ui.chat.error.api":"Erro da API","ui.chat.error.connectionFailed":"falha na conexão","ui.chat.error.network":"Erro de rede: {error}","ui.chat.error.noResponse":"Nenhuma resposta recebida","ui.chat.error.parse":"Falha ao interpretar a resposta: {error}","ui.chat.error.timeout":"Tempo da solicitação esgotado ({seconds}s)","ui.chat.error.unknown":"Erro desconhecido","ui.chat.error.unknownProvider":"Provedor desconhecido: {provider}","ui.chat.field.apiKey":"Chave de API","ui.chat.field.model":"Modelo","ui.chat.header.clear":"Limpar chat","ui.chat.header.disconnect":"Desconectar","ui.chat.header.settings":"Configurações","ui.chat.input.placeholder":"Peça para eu editar seu projeto...","ui.chat.input.send":"Enviar","ui.chat.login.apiKeyPlaceholder":"Insira sua chave de API...","ui.chat.login.connect":"Conectar e conversar","ui.chat.login.connecting":"Conectando...","ui.chat.login.emptyKey":"Insira uma chave de API.","ui.chat.login.failed":"Falha na conexão: {error}","ui.chat.login.keyHint":"Obtenha uma chave em {link}","ui.chat.login.privacy":"Sua chave de API fica armazenada localmente e nunca sai desta máquina.","ui.chat.login.subtitle":"Conecte um provedor de IA para controlar o Premiere Pro com linguagem natural.","ui.chat.login.title":"Chat de IA do Premiere Pro","ui.chat.login.toggleKey":"Mostrar/ocultar chave","ui.chat.message.empty":"(resposta vazia)","ui.chat.message.error":"**Erro:** {error}","ui.chat.message.keyInvalid":"**Aviso:** a chave de API salva pode ser inválida — {error}. Você pode atualizá-la em Configurações.","ui.chat.script.error":"Erro: {error}","ui.chat.script.execute":"Executar","ui.chat.script.noReturn":"(sem valor de retorno)","ui.chat.script.parseError":"Erro de análise: {result}","ui.chat.script.preview":"ExtendScript (prévia)","ui.chat.script.result":"Resultado do ExtendScript","ui.chat.script.running":"Executando...","ui.chat.settings.autoExec":"Executar ExtendScript automaticamente (desmarque para ver uma prévia antes)","ui.chat.settings.changeApiKey":"Alterar chave de API","ui.chat.settings.maxTokens":"Máx. de tokens","ui.chat.settings.save":"Salvar","ui.chat.settings.systemPrompt":"Prompt do sistema (anexado ao padrão)","ui.chat.settings.systemPromptPlaceholder":"Adicione instruções personalizadas...","ui.chat.settings.temperature":"Temperatura","ui.chat.settings.title":"Configurações","ui.chat.status.error":"Erro","ui.chat.status.executing":"Executando script...","ui.chat.status.ready":"Pronto","ui.chat.status.thinking":"Pensando...","ui.chat.suggestion.dissolve":"Adicione uma dissolução cruzada em todos os cortes","ui.chat.suggestion.export":"Exportar como H.264","ui.chat.suggestion.exportPrompt":"Exporte a sequência ativa como H.264","ui.chat.suggestion.timeline":"Quais clipes estão na minha linha do tempo?","ui.chat.tokens":"{input} entrada / {output} saída","ui.chat.welcome.body":"Posso ajudar você a editar no Premiere Pro. Experimente:","ui.chat.welcome.title":"Boas-vindas!","ui.i18n.language":"Idioma","ui.i18n.restartNote":"As descrições das ferramentas de IA mudam de idioma depois que você reinicia o servidor MCP (ou o app que o executa).","ui.i18n.saveFailed":"Não foi possível salvar a preferência de idioma. Ela valerá só nesta sessão.","ui.i18n.saved":"Idioma salvo."},"fr":{"msg.bridge.blockedPattern":"Le script contient un motif bloqué : {pattern}","msg.bridge.parseFailed":"Impossible d'analyser la réponse : {error}","msg.bridge.scriptTooLarge":"Le script dépasse la taille maximale de {limit}","msg.bridge.timeout":"Délai de la commande dépassé après {ms} ms. Le plug-in CEP est-il lancé dans Premiere Pro ?","msg.doctor.allGood":"Tout semble en ordre.","msg.doctor.language":"Langue : {language}","msg.doctor.languageDefault":"Par défaut. Modifiez-la avec PREMIERE_PRO_MCP_LANG ou dans les Paramètres du panneau (⚙).","msg.doctor.languageFrom":"Définie par {source}","msg.doctor.licenseExpires":"Expiration : {date}","msg.doctor.licenseInvalid":"Échec de la validation de la licence","msg.doctor.licenseMissing":"PREMIERE_PRO_MCP_LICENSE n'est pas défini","msg.doctor.licenseMissingDetail":"Ajoutez-la à la configuration de votre client MCP (claude_desktop_config.json ou équivalent).","msg.doctor.licenseNoExpiration":"Sans expiration","msg.doctor.licensePresent":"Clé de licence présente ({prefix}...)","msg.doctor.licenseValid":"Licence validée","msg.doctor.nodeTooOld":"Node 18 ou ultérieur requis — mettez à jour depuis nodejs.org","msg.doctor.os":"Système : {os}","msg.doctor.premiereFound":"Premiere Pro détecté","msg.doctor.premiereNotFound":"Premiere Pro introuvable à l'emplacement d'installation habituel","msg.doctor.premiereNotFoundDetail":"Pas bloquant — le serveur MCP n'a besoin de Premiere Pro en cours d'exécution que lorsqu'un outil l'appelle réellement.","msg.doctor.someFailed":"Certaines vérifications ont échoué.","msg.doctor.someFailedHint":"Corrigez les éléments ci-dessus ou transmettez cette sortie à l'assistance sur https://synthetic.com.ar/dashboard/support","msg.doctor.tempNotWritable":"Le dossier temporaire de la passerelle n'est pas accessible en écriture","msg.doctor.tempWritable":"Dossier temporaire de la passerelle accessible en écriture","msg.doctor.title":"premiere-mcp doctor — vérification de votre configuration","msg.doctor.unknownReason":"Raison inconnue","msg.help.doctor":"Vérifier votre configuration (Node, licence, Premiere Pro, dossier temporaire)","msg.help.env":"Variables d'environnement :","msg.help.envLang":"Langue des descriptions d'outils et des messages : {languages} (par défaut : le réglage du panneau, sinon l'anglais)","msg.help.envTempDir":"Dossier temporaire partagé (par défaut : dossier temporaire du système + /premiere-mcp-bridge)","msg.help.envTimeout":"Délai d'expiration des commandes en ms (par défaut : 30000)","msg.help.help":"Afficher ce message d'aide","msg.help.installCep":"Installer le plug-in CEP dans Premiere Pro","msg.help.moreInfo":"Plus d'informations : {url}","msg.help.start":"Démarrer le serveur MCP (transport stdio)","msg.help.title":"Serveur MCP pour Adobe Premiere Pro ({count} outils)","msg.help.usage":"Utilisation :","msg.help.version":"Afficher la version","msg.installCep.failed":"Échec de l'installation CEP. Essayez de l'exécuter manuellement :","msg.installCep.installing":"Installation du plug-in CEP...","msg.license.getLicense":"Obtenez une licence sur https://synthetic.com.ar/premiere-mcp","msg.license.invalid":"Licence non valide ou manquante.","msg.license.missing":"Aucune clé de licence. Définissez PREMIERE_PRO_MCP_LICENSE dans votre configuration MCP. Obtenez une licence sur https://synthetic.com.ar/premiere-mcp","msg.license.required":"Licence requise","msg.license.unreachable":"Serveur de licences injoignable. Vérifiez votre connexion Internet.","msg.resource.extendscriptReference":"Référence complète de l'API ExtendScript de Premiere Pro pour écrire des scripts personnalisés via execute_extendscript","msg.resource.instructions":"Instructions et bonnes pratiques pour utiliser Premiere Pro via les outils MCP","msg.tool.audioEffectsNote":"Liste statique d'effets audio courants de Premiere Pro. Utilisez apply_audio_effect avec ces noms exacts.","msg.tool.audioTransitionsNote":"Premiere Pro propose 3 transitions audio. 'Constant Power' est la transition par défaut recommandée pour les fondus enchaînés musicaux.","msg.tool.error":"Erreur : {message}","msg.tool.frameCaptured":"Image capturée avec succès.","msg.tool.frameNotFound":"Exportation de l'image terminée, mais fichier introuvable à l'emplacement : {path}","msg.tool.frameReadFailed":"Impossible de lire l'image capturée : {error}","msg.tool.videoEffectsNote":"Liste statique d'effets vidéo courants de Premiere Pro. Utilisez apply_effect avec ces noms exacts.","msg.tool.videoTransitionsNote":"Liste statique de transitions vidéo courantes de Premiere Pro. Utilisez add_transition avec ces noms exacts.","ui.bridge.activity.title":"Journal d'activité","ui.bridge.controls.save":"Enregistrer","ui.bridge.controls.start":"Démarrer la passerelle","ui.bridge.controls.stop":"Arrêter","ui.bridge.error.execTimeout":"Délai d'exécution ExtendScript dépassé après {seconds} secondes. Premiere Pro est peut-être occupé ou ne répond pas.","ui.bridge.footer.builtBy":"Créé par","ui.bridge.header.openSite":"Ouvrir synthetic.com.ar","ui.bridge.license.empty":"Saisissez une clé de licence avant d'enregistrer.","ui.bridge.license.none":"Aucune clé de licence enregistrée — requise pour les mises à jour.","ui.bridge.license.requiredForUpdate":"Clé de licence requise pour la mise à jour.","ui.bridge.license.saveFailed":"Échec de l'enregistrement de la clé de licence (voir le journal).","ui.bridge.license.saved":"Clé de licence enregistrée.","ui.bridge.log.autoStart":"Le dossier temporaire existe, démarrage automatique...","ui.bridge.log.createDirFailed":"Erreur lors de la création du dossier : {error}","ui.bridge.log.downloading":"Téléchargement de {file}...","ui.bridge.log.execTimeout":"Délai d'exécution dépassé après {seconds} s","ui.bridge.log.executing":"Exécution : {file} ({chars} caractères)","ui.bridge.log.libraryLoaded":"premiere.jsx chargé : {result}","ui.bridge.log.licenseSaveError":"Erreur lors de l'enregistrement de la clé de licence : {error}","ui.bridge.log.loaded":"{name} chargé","ui.bridge.log.noUpdate":"Aucune mise à jour à appliquer","ui.bridge.log.readFailed":"Échec de la lecture : {file}","ui.bridge.log.resultError":"Résultat : Erreur — {error}","ui.bridge.log.resultOk":"Résultat : OK","ui.bridge.log.resultOkEmpty":"Résultat : OK (null/undefined)","ui.bridge.log.resultOkRaw":"Résultat : OK (brut)","ui.bridge.log.resultRaw":"Résultat : {result}","ui.bridge.log.sizeDiffers":"Taille différente du manifeste pour {file} ({actual} vs {expected}) — poursuite","ui.bridge.log.started":"Passerelle démarrée. Dossier temporaire : {dir}","ui.bridge.log.stopped":"Passerelle arrêtée","ui.bridge.log.tempDirMissing":"Définissez un dossier temporaire","ui.bridge.log.tempDirSaved":"Dossier temporaire enregistré : {dir}","ui.bridge.log.unknownError":"inconnue","ui.bridge.log.updateAborted":"Mise à jour interrompue : {reason}","ui.bridge.log.updateApplied":"Mise à jour v{version} appliquée. REDÉMARREZ PREMIERE PRO pour charger le nouveau panneau.","ui.bridge.log.updateNoLicense":"Échec de la mise à jour : aucune clé de licence enregistrée. Ouvrez Paramètres et collez votre clé de licence Premiere MCP.","ui.bridge.log.versionUnknown":"Avertissement : impossible de détecter la version de Premiere Pro","ui.bridge.log.writeFailed":"Erreur lors de l'écriture de {file} : {error}","ui.bridge.product.statusReady":"Panneau prêt","ui.bridge.product.subtitle":"Passerelle · {count} outils","ui.bridge.settings.licenseKey":"Clé de licence","ui.bridge.settings.licensePlaceholder":"Collez votre clé de licence Premiere MCP","ui.bridge.settings.saveLicense":"Enregistrer la licence","ui.bridge.stats.commandsProcessed":"Commandes traitées :","ui.bridge.status.errors":"En cours — {count} erreur(s) consécutive(s)","ui.bridge.status.polling":"En cours — surveillance de {dir}","ui.bridge.status.ready":"Prêt — cliquez sur Démarrer la passerelle","ui.bridge.status.running":"En cours — {count} commandes traitées","ui.bridge.status.stopped":"Arrêté","ui.bridge.status.unresponsive":"En cours — Premiere Pro ne répond pas ({count} erreurs)","ui.bridge.status.updateApplied":"Mise à jour appliquée — redémarrez Premiere Pro","ui.bridge.status.updateFailed":"Échec de la mise à jour","ui.bridge.tempDir.label":"Dossier temporaire","ui.bridge.toolbar.reload":"Recharger le panneau","ui.bridge.toolbar.settings":"Paramètres","ui.bridge.update.appliedBody":"Fermez et rouvrez Premiere Pro pour activer la v{version}.","ui.bridge.update.appliedTitle":"Mise à jour appliquée.","ui.bridge.update.available":"Mise à jour disponible","ui.bridge.update.backupFailed":"Échec de la sauvegarde de {file} : {error}","ui.bridge.update.commitFailed":"Échec de la validation (modifications annulées) : {error}","ui.bridge.update.downloadFailed":"Échec du téléchargement de {file} : {error}","ui.bridge.update.installerHint":"Si le remplacement à chaud échoue ou si la version nécessite un nouveau manifeste","ui.bridge.update.later":"Plus tard","ui.bridge.update.now":"Mettre à jour","ui.bridge.update.ok":"OK","ui.bridge.update.shaMismatch":"SHA256 non concordant pour {file} (obtenu {got}..., attendu {expected}...)","ui.bridge.update.updating":"Mise à jour...","ui.chat.context.noProject":"Aucun projet ouvert","ui.chat.context.notConnected":"Non connecté à Premiere Pro","ui.chat.context.refresh":"Actualiser","ui.chat.error.api":"Erreur d'API","ui.chat.error.connectionFailed":"échec de la connexion","ui.chat.error.network":"Erreur réseau : {error}","ui.chat.error.noResponse":"Aucune réponse reçue","ui.chat.error.parse":"Impossible d'analyser la réponse : {error}","ui.chat.error.timeout":"Délai de la requête dépassé ({seconds} s)","ui.chat.error.unknown":"Erreur inconnue","ui.chat.error.unknownProvider":"Fournisseur inconnu : {provider}","ui.chat.field.apiKey":"Clé API","ui.chat.field.model":"Modèle","ui.chat.header.clear":"Effacer le chat","ui.chat.header.disconnect":"Se déconnecter","ui.chat.header.settings":"Paramètres","ui.chat.input.placeholder":"Demandez-moi de modifier votre projet...","ui.chat.input.send":"Envoyer","ui.chat.login.apiKeyPlaceholder":"Saisissez votre clé API...","ui.chat.login.connect":"Se connecter et discuter","ui.chat.login.connecting":"Connexion...","ui.chat.login.emptyKey":"Saisissez une clé API.","ui.chat.login.failed":"Échec de la connexion : {error}","ui.chat.login.keyHint":"Obtenez une clé sur {link}","ui.chat.login.privacy":"Votre clé API est stockée localement et ne quitte jamais cet ordinateur.","ui.chat.login.subtitle":"Connectez un fournisseur d'IA pour piloter Premiere Pro en langage naturel.","ui.chat.login.title":"Chat IA Premiere Pro","ui.chat.login.toggleKey":"Afficher/masquer la clé","ui.chat.message.empty":"(réponse vide)","ui.chat.message.error":"**Erreur :** {error}","ui.chat.message.keyInvalid":"**Avertissement :** la clé API enregistrée n'est peut-être pas valide — {error}. Vous pouvez la modifier dans Paramètres.","ui.chat.script.error":"Erreur : {error}","ui.chat.script.execute":"Exécuter","ui.chat.script.noReturn":"(aucune valeur renvoyée)","ui.chat.script.parseError":"Erreur d'analyse : {result}","ui.chat.script.preview":"ExtendScript (aperçu)","ui.chat.script.result":"Résultat ExtendScript","ui.chat.script.running":"Exécution...","ui.chat.settings.autoExec":"Exécuter ExtendScript automatiquement (décochez pour prévisualiser d'abord)","ui.chat.settings.changeApiKey":"Changer la clé API","ui.chat.settings.maxTokens":"Tokens max","ui.chat.settings.save":"Enregistrer","ui.chat.settings.systemPrompt":"Prompt système (ajouté à celui par défaut)","ui.chat.settings.systemPromptPlaceholder":"Ajoutez des instructions personnalisées...","ui.chat.settings.temperature":"Température","ui.chat.settings.title":"Paramètres","ui.chat.status.error":"Erreur","ui.chat.status.executing":"Exécution du script...","ui.chat.status.ready":"Prêt","ui.chat.status.thinking":"Réflexion...","ui.chat.suggestion.dissolve":"Ajouter un fondu enchaîné à toutes les coupes","ui.chat.suggestion.export":"Exporter en H.264","ui.chat.suggestion.exportPrompt":"Exporter la séquence active en H.264","ui.chat.suggestion.timeline":"Quels clips y a-t-il dans mon montage ?","ui.chat.tokens":"{input} en entrée / {output} en sortie","ui.chat.welcome.body":"Je peux vous aider à monter dans Premiere Pro. Essayez :","ui.chat.welcome.title":"Bienvenue !","ui.i18n.language":"Langue","ui.i18n.restartNote":"Les descriptions des outils IA changent de langue après le redémarrage du serveur MCP (ou de l'application qui l'exécute).","ui.i18n.saveFailed":"Impossible d'enregistrer la préférence de langue. Elle ne vaudra que pour cette session.","ui.i18n.saved":"Langue enregistrée."},"de":{"msg.bridge.blockedPattern":"Skript enthält ein blockiertes Muster: {pattern}","msg.bridge.parseFailed":"Antwort konnte nicht geparst werden: {error}","msg.bridge.scriptTooLarge":"Skript überschreitet die Größenbeschränkung von {limit}","msg.bridge.timeout":"Zeitüberschreitung des Befehls nach {ms} ms. Läuft das CEP-Plug-in in Premiere Pro?","msg.doctor.allGood":"Alles in Ordnung.","msg.doctor.language":"Sprache: {language}","msg.doctor.languageDefault":"Standard. Ändern Sie sie über PREMIERE_PRO_MCP_LANG oder in den Einstellungen des Bedienfelds (⚙).","msg.doctor.languageFrom":"Übernommen aus {source}","msg.doctor.licenseExpires":"Läuft ab: {date}","msg.doctor.licenseInvalid":"Lizenzprüfung fehlgeschlagen","msg.doctor.licenseMissing":"PREMIERE_PRO_MCP_LICENSE nicht gesetzt","msg.doctor.licenseMissingDetail":"Fügen Sie die Variable der Konfiguration Ihres MCP-Clients hinzu (claude_desktop_config.json oder Entsprechendes).","msg.doctor.licenseNoExpiration":"Kein Ablaufdatum","msg.doctor.licensePresent":"Lizenzschlüssel vorhanden ({prefix}...)","msg.doctor.licenseValid":"Lizenz gültig","msg.doctor.nodeTooOld":"Erfordert Node 18 oder neuer — aktualisieren Sie über nodejs.org","msg.doctor.os":"Betriebssystem: {os}","msg.doctor.premiereFound":"Premiere Pro erkannt","msg.doctor.premiereNotFound":"Premiere Pro nicht am üblichen Installationsort gefunden","msg.doctor.premiereNotFoundDetail":"Nicht kritisch — der MCP-Server benötigt ein laufendes Premiere Pro nur, wenn ein Tool es tatsächlich aufruft.","msg.doctor.someFailed":"Einige Prüfungen sind fehlgeschlagen.","msg.doctor.someFailedHint":"Beheben Sie die oben genannten Punkte oder senden Sie diese Ausgabe an den Support unter https://synthetic.com.ar/dashboard/support","msg.doctor.tempNotWritable":"Temp-Ordner der Bridge nicht beschreibbar","msg.doctor.tempWritable":"Temp-Ordner der Bridge beschreibbar","msg.doctor.title":"premiere-mcp doctor — Ihre Einrichtung wird geprüft","msg.doctor.unknownReason":"Unbekannter Grund","msg.help.doctor":"Einrichtung prüfen (Node, Lizenz, Premiere Pro, Temp-Ordner)","msg.help.env":"Umgebungsvariablen:","msg.help.envLang":"Sprache der Tool-Beschreibungen und Meldungen: {languages} (Standard: Einstellung im Bedienfeld, sonst Englisch)","msg.help.envTempDir":"Gemeinsamer Temp-Ordner (Standard: Temp-Ordner des Betriebssystems + /premiere-mcp-bridge)","msg.help.envTimeout":"Timeout für Befehle in ms (Standard: 30000)","msg.help.help":"Diese Hilfe anzeigen","msg.help.installCep":"CEP-Plug-in in Premiere Pro installieren","msg.help.moreInfo":"Weitere Infos: {url}","msg.help.start":"MCP-Server starten (stdio-Transport)","msg.help.title":"MCP-Server für Adobe Premiere Pro ({count} Tools)","msg.help.usage":"Verwendung:","msg.help.version":"Version anzeigen","msg.installCep.failed":"CEP-Installation fehlgeschlagen. Versuchen Sie, Folgendes manuell auszuführen:","msg.installCep.installing":"CEP-Plug-in wird installiert...","msg.license.getLicense":"Eine Lizenz erhalten Sie unter https://synthetic.com.ar/premiere-mcp","msg.license.invalid":"Lizenz ungültig oder nicht vorhanden.","msg.license.missing":"Kein Lizenzschlüssel. Setzen Sie PREMIERE_PRO_MCP_LICENSE in Ihrer MCP-Konfiguration. Eine Lizenz erhalten Sie unter https://synthetic.com.ar/premiere-mcp","msg.license.required":"Lizenz erforderlich","msg.license.unreachable":"Lizenzserver nicht erreichbar. Prüfen Sie Ihre Internetverbindung.","msg.resource.extendscriptReference":"Vollständige Referenz der ExtendScript-API von Premiere Pro zum Schreiben eigener Skripte über execute_extendscript","msg.resource.instructions":"Anleitungen und Best Practices für die Verwendung von Premiere Pro über MCP-Tools","msg.tool.audioEffectsNote":"Statische Liste gängiger Audioeffekte von Premiere Pro. Verwenden Sie apply_audio_effect mit genau diesen Namen.","msg.tool.audioTransitionsNote":"Premiere Pro hat 3 Audioüberblendungen. 'Constant Power' ist die empfohlene Standardwahl für Musik-Crossfades.","msg.tool.error":"Fehler: {message}","msg.tool.frameCaptured":"Frame erfolgreich erfasst.","msg.tool.frameNotFound":"Frame-Export abgeschlossen, aber Datei nicht gefunden unter: {path}","msg.tool.frameReadFailed":"Erfasster Frame konnte nicht gelesen werden: {error}","msg.tool.videoEffectsNote":"Statische Liste gängiger Videoeffekte von Premiere Pro. Verwenden Sie apply_effect mit genau diesen Namen.","msg.tool.videoTransitionsNote":"Statische Liste gängiger Videoüberblendungen von Premiere Pro. Verwenden Sie add_transition mit genau diesen Namen.","ui.bridge.activity.title":"Aktivitätsprotokoll","ui.bridge.controls.save":"Speichern","ui.bridge.controls.start":"Bridge starten","ui.bridge.controls.stop":"Stoppen","ui.bridge.error.execTimeout":"Zeitüberschreitung bei der ExtendScript-Ausführung nach {seconds} Sekunden. Premiere Pro ist möglicherweise ausgelastet oder reagiert nicht.","ui.bridge.footer.builtBy":"Entwickelt von","ui.bridge.header.openSite":"synthetic.com.ar öffnen","ui.bridge.license.empty":"Geben Sie vor dem Speichern einen Lizenzschlüssel ein.","ui.bridge.license.none":"Noch kein Lizenzschlüssel gespeichert — für Updates erforderlich.","ui.bridge.license.requiredForUpdate":"Für das Update ist ein Lizenzschlüssel erforderlich.","ui.bridge.license.saveFailed":"Lizenzschlüssel konnte nicht gespeichert werden (siehe Protokoll).","ui.bridge.license.saved":"Lizenzschlüssel gespeichert.","ui.bridge.log.autoStart":"Temp-Ordner vorhanden, automatischer Start...","ui.bridge.log.createDirFailed":"Fehler beim Erstellen des Ordners: {error}","ui.bridge.log.downloading":"{file} wird heruntergeladen...","ui.bridge.log.execTimeout":"Zeitüberschreitung bei der Ausführung nach {seconds} s","ui.bridge.log.executing":"Ausführung: {file} ({chars} Zeichen)","ui.bridge.log.libraryLoaded":"premiere.jsx geladen: {result}","ui.bridge.log.licenseSaveError":"Fehler beim Speichern des Lizenzschlüssels: {error}","ui.bridge.log.loaded":"{name} geladen","ui.bridge.log.noUpdate":"Kein Update zum Installieren","ui.bridge.log.readFailed":"Lesen fehlgeschlagen: {file}","ui.bridge.log.resultError":"Ergebnis: Fehler — {error}","ui.bridge.log.resultOk":"Ergebnis: OK","ui.bridge.log.resultOkEmpty":"Ergebnis: OK (null/undefined)","ui.bridge.log.resultOkRaw":"Ergebnis: OK (Rohdaten)","ui.bridge.log.resultRaw":"Ergebnis: {result}","ui.bridge.log.sizeDiffers":"Größe von {file} weicht vom Manifest ab ({actual} statt {expected}) — wird fortgesetzt","ui.bridge.log.started":"Bridge gestartet. Temp-Ordner: {dir}","ui.bridge.log.stopped":"Bridge gestoppt","ui.bridge.log.tempDirMissing":"Bitte legen Sie einen Temp-Ordner fest","ui.bridge.log.tempDirSaved":"Temp-Ordner gespeichert: {dir}","ui.bridge.log.unknownError":"unbekannt","ui.bridge.log.updateAborted":"Update abgebrochen: {reason}","ui.bridge.log.updateApplied":"Update v{version} installiert. STARTEN SIE PREMIERE PRO NEU, um das neue Bedienfeld zu laden.","ui.bridge.log.updateNoLicense":"Update fehlgeschlagen: kein Lizenzschlüssel gespeichert. Öffnen Sie die Einstellungen und fügen Sie Ihren Premiere MCP-Lizenzschlüssel ein.","ui.bridge.log.versionUnknown":"Warnung: Premiere Pro-Version konnte nicht ermittelt werden","ui.bridge.log.writeFailed":"Fehler beim Schreiben von {file}: {error}","ui.bridge.product.statusReady":"Bedienfeld bereit","ui.bridge.product.subtitle":"Bridge · {count} Tools","ui.bridge.settings.licenseKey":"Lizenzschlüssel","ui.bridge.settings.licensePlaceholder":"Premiere MCP-Lizenzschlüssel einfügen","ui.bridge.settings.saveLicense":"Lizenz speichern","ui.bridge.stats.commandsProcessed":"Verarbeitete Befehle:","ui.bridge.status.errors":"Läuft — {count} Fehler in Folge","ui.bridge.status.polling":"Läuft — überwacht {dir}","ui.bridge.status.ready":"Bereit — klicken Sie auf „Bridge starten“","ui.bridge.status.running":"Läuft — {count} Befehle verarbeitet","ui.bridge.status.stopped":"Gestoppt","ui.bridge.status.unresponsive":"Läuft — Premiere Pro reagiert nicht ({count} Fehler)","ui.bridge.status.updateApplied":"Update installiert — Premiere Pro neu starten","ui.bridge.status.updateFailed":"Update fehlgeschlagen","ui.bridge.tempDir.label":"Temp-Ordner","ui.bridge.toolbar.reload":"Bedienfeld neu laden","ui.bridge.toolbar.settings":"Einstellungen","ui.bridge.update.appliedBody":"Schließen Sie Premiere Pro und öffnen Sie es erneut, um v{version} zu aktivieren.","ui.bridge.update.appliedTitle":"Update installiert.","ui.bridge.update.available":"Update verfügbar","ui.bridge.update.backupFailed":"Sicherung von {file} fehlgeschlagen: {error}","ui.bridge.update.commitFailed":"Übernahme fehlgeschlagen (zurückgesetzt): {error}","ui.bridge.update.downloadFailed":"Download von {file} fehlgeschlagen: {error}","ui.bridge.update.installerHint":"Falls das Live-Update fehlschlägt oder die Version ein neues Manifest erfordert","ui.bridge.update.later":"Später","ui.bridge.update.now":"Jetzt aktualisieren","ui.bridge.update.ok":"OK","ui.bridge.update.shaMismatch":"SHA256 von {file} stimmt nicht überein (erhalten {got}..., erwartet {expected}...)","ui.bridge.update.updating":"Wird aktualisiert...","ui.chat.context.noProject":"Kein Projekt geöffnet","ui.chat.context.notConnected":"Nicht mit Premiere Pro verbunden","ui.chat.context.refresh":"Aktualisieren","ui.chat.error.api":"API-Fehler","ui.chat.error.connectionFailed":"Verbindung fehlgeschlagen","ui.chat.error.network":"Netzwerkfehler: {error}","ui.chat.error.noResponse":"Keine Antwort erhalten","ui.chat.error.parse":"Antwort konnte nicht geparst werden: {error}","ui.chat.error.timeout":"Zeitüberschreitung der Anfrage ({seconds} s)","ui.chat.error.unknown":"Unbekannter Fehler","ui.chat.error.unknownProvider":"Unbekannter Anbieter: {provider}","ui.chat.field.apiKey":"API-Schlüssel","ui.chat.field.model":"Modell","ui.chat.header.clear":"Chat leeren","ui.chat.header.disconnect":"Trennen","ui.chat.header.settings":"Einstellungen","ui.chat.input.placeholder":"Bitten Sie mich, Ihr Projekt zu bearbeiten...","ui.chat.input.send":"Senden","ui.chat.login.apiKeyPlaceholder":"API-Schlüssel eingeben...","ui.chat.login.connect":"Verbinden und Chat starten","ui.chat.login.connecting":"Wird verbunden...","ui.chat.login.emptyKey":"Bitte geben Sie einen API-Schlüssel ein.","ui.chat.login.failed":"Verbindung fehlgeschlagen: {error}","ui.chat.login.keyHint":"Einen Schlüssel erhalten Sie unter {link}","ui.chat.login.privacy":"Ihr API-Schlüssel wird lokal gespeichert und verlässt diesen Computer nie.","ui.chat.login.subtitle":"Verbinden Sie einen KI-Anbieter, um Premiere Pro mit natürlicher Sprache zu steuern.","ui.chat.login.title":"Premiere Pro AI Chat","ui.chat.login.toggleKey":"Schlüssel ein-/ausblenden","ui.chat.message.empty":"(leere Antwort)","ui.chat.message.error":"**Fehler:** {error}","ui.chat.message.keyInvalid":"**Warnung:** Der gespeicherte API-Schlüssel ist möglicherweise ungültig — {error}. Sie können ihn in den Einstellungen ändern.","ui.chat.script.error":"Fehler: {error}","ui.chat.script.execute":"Ausführen","ui.chat.script.noReturn":"(kein Rückgabewert)","ui.chat.script.parseError":"Fehler beim Parsen: {result}","ui.chat.script.preview":"ExtendScript (Vorschau)","ui.chat.script.result":"ExtendScript-Ergebnis","ui.chat.script.running":"Wird ausgeführt...","ui.chat.settings.autoExec":"ExtendScript automatisch ausführen (deaktivieren, um erst die Vorschau zu sehen)","ui.chat.settings.changeApiKey":"API-Schlüssel ändern","ui.chat.settings.maxTokens":"Max. Tokens","ui.chat.settings.save":"Speichern","ui.chat.settings.systemPrompt":"Systemprompt (wird an den Standard angehängt)","ui.chat.settings.systemPromptPlaceholder":"Eigene Anweisungen hinzufügen...","ui.chat.settings.temperature":"Temperatur","ui.chat.settings.title":"Einstellungen","ui.chat.status.error":"Fehler","ui.chat.status.executing":"Skript wird ausgeführt...","ui.chat.status.ready":"Bereit","ui.chat.status.thinking":"Denkt nach...","ui.chat.suggestion.dissolve":"Weiche Blende an allen Schnitten hinzufügen","ui.chat.suggestion.export":"Als H.264 exportieren","ui.chat.suggestion.exportPrompt":"Die aktive Sequenz als H.264 exportieren","ui.chat.suggestion.timeline":"Welche Clips sind in meiner Zeitleiste?","ui.chat.tokens":"{input} Eingabe / {output} Ausgabe","ui.chat.welcome.body":"Ich kann Ihnen beim Schneiden in Premiere Pro helfen. Probieren Sie:","ui.chat.welcome.title":"Willkommen!","ui.i18n.language":"Sprache","ui.i18n.restartNote":"Die Tool-Beschreibungen für die KI wechseln die Sprache, sobald Sie den MCP-Server (oder die App, in der er läuft) neu starten.","ui.i18n.saveFailed":"Die Spracheinstellung konnte nicht gespeichert werden. Sie gilt nur für diese Sitzung.","ui.i18n.saved":"Sprache gespeichert."},"ja":{"msg.bridge.blockedPattern":"スクリプトにブロック対象のパターンが含まれています:{pattern}","msg.bridge.parseFailed":"応答を解析できませんでした:{error}","msg.bridge.scriptTooLarge":"スクリプトがサイズ上限の {limit} を超えています","msg.bridge.timeout":"{ms}ms 後にコマンドがタイムアウトしました。Premiere Pro で CEP プラグインは実行されていますか?","msg.doctor.allGood":"すべて問題ありません。","msg.doctor.language":"言語:{language}","msg.doctor.languageDefault":"デフォルトです。PREMIERE_PRO_MCP_LANG またはパネルの設定(⚙)で変更できます。","msg.doctor.languageFrom":"{source} から選択","msg.doctor.licenseExpires":"有効期限:{date}","msg.doctor.licenseInvalid":"ライセンスの検証に失敗しました","msg.doctor.licenseMissing":"PREMIERE_PRO_MCP_LICENSE が設定されていません","msg.doctor.licenseMissingDetail":"MCP クライアントの設定(claude_desktop_config.json または同等のファイル)に追加してください。","msg.doctor.licenseNoExpiration":"有効期限なし","msg.doctor.licensePresent":"ライセンスキーがあります({prefix}...)","msg.doctor.licenseValid":"ライセンスは有効です","msg.doctor.nodeTooOld":"Node 18 以上が必要です — nodejs.org から更新してください","msg.doctor.os":"OS:{os}","msg.doctor.premiereFound":"Premiere Pro を検出しました","msg.doctor.premiereNotFound":"通常のインストール場所に Premiere Pro が見つかりません","msg.doctor.premiereNotFoundDetail":"致命的な問題ではありません — MCP サーバーで Premiere Pro の起動が必要になるのは、ツールが実際に Premiere Pro を呼び出すときだけです。","msg.doctor.someFailed":"一部のチェックに失敗しました。","msg.doctor.someFailedHint":"上記の項目を修正するか、この出力を https://synthetic.com.ar/dashboard/support でサポートに共有してください","msg.doctor.tempNotWritable":"ブリッジの一時ディレクトリに書き込めません","msg.doctor.tempWritable":"ブリッジの一時ディレクトリに書き込めます","msg.doctor.title":"premiere-mcp 診断 — セットアップを確認しています","msg.doctor.unknownReason":"不明な理由","msg.help.doctor":"セットアップを確認します(Node、ライセンス、Premiere Pro、一時ディレクトリ)","msg.help.env":"環境変数:","msg.help.envLang":"ツールの説明とメッセージの言語:{languages}(デフォルトはパネルの設定、未設定の場合は英語)","msg.help.envTempDir":"共有の一時ディレクトリ(デフォルト:OS の一時ディレクトリ + /premiere-mcp-bridge)","msg.help.envTimeout":"コマンドのタイムアウト(ms、デフォルトは 30000)","msg.help.help":"このヘルプメッセージを表示します","msg.help.installCep":"Premiere Pro に CEP プラグインをインストールします","msg.help.moreInfo":"詳細:{url}","msg.help.start":"MCP サーバーを起動します(stdio トランスポート)","msg.help.title":"Adobe Premiere Pro 用 MCP サーバー({count} 個のツール)","msg.help.usage":"使い方:","msg.help.version":"バージョンを表示します","msg.installCep.failed":"CEP のインストールに失敗しました。手動で実行してみてください:","msg.installCep.installing":"CEP プラグインをインストールしています...","msg.license.getLicense":"ライセンスは https://synthetic.com.ar/premiere-mcp で入手できます","msg.license.invalid":"ライセンスが無効か、見つかりません。","msg.license.missing":"ライセンスキーがありません。MCP の設定で PREMIERE_PRO_MCP_LICENSE を設定してください。ライセンスは https://synthetic.com.ar/premiere-mcp で入手できます","msg.license.required":"ライセンスが必要です","msg.license.unreachable":"ライセンスサーバーに接続できません。インターネット接続を確認してください。","msg.resource.extendscriptReference":"execute_extendscript でカスタムスクリプトを作成するための、Premiere Pro ExtendScript API の完全なリファレンス","msg.resource.instructions":"MCP ツールで Premiere Pro を使用するための手順とベストプラクティス","msg.tool.audioEffectsNote":"Premiere Pro の一般的なオーディオエフェクトの固定リストです。apply_audio_effect では、これらの名前を正確に指定してください。","msg.tool.audioTransitionsNote":"Premiere Pro には 3 つのオーディオトランジションがあります。音楽のクロスフェードには、デフォルトとして 'Constant Power' を推奨します。","msg.tool.error":"エラー:{message}","msg.tool.frameCaptured":"フレームをキャプチャしました。","msg.tool.frameNotFound":"フレームの書き出しは完了しましたが、次の場所にファイルが見つかりません:{path}","msg.tool.frameReadFailed":"キャプチャしたフレームを読み取れませんでした:{error}","msg.tool.videoEffectsNote":"Premiere Pro の一般的なビデオエフェクトの固定リストです。apply_effect では、これらの名前を正確に指定してください。","msg.tool.videoTransitionsNote":"Premiere Pro の一般的なビデオトランジションの固定リストです。add_transition では、これらの名前を正確に指定してください。","ui.bridge.activity.title":"アクティビティログ","ui.bridge.controls.save":"保存","ui.bridge.controls.start":"ブリッジを開始","ui.bridge.controls.stop":"停止","ui.bridge.error.execTimeout":"ExtendScript の実行が {seconds} 秒後にタイムアウトしました。Premiere Pro がビジー状態か、応答していない可能性があります。","ui.bridge.footer.builtBy":"制作:","ui.bridge.header.openSite":"synthetic.com.ar を開く","ui.bridge.license.empty":"保存する前にライセンスキーを入力してください。","ui.bridge.license.none":"ライセンスキーはまだ保存されていません — アップデートに必要です。","ui.bridge.license.requiredForUpdate":"アップデートする前にライセンスキーが必要です。","ui.bridge.license.saveFailed":"ライセンスキーを保存できませんでした(ログを参照)。","ui.bridge.license.saved":"ライセンスキーを保存しました。","ui.bridge.log.autoStart":"一時ディレクトリが存在するため、自動的に開始しています...","ui.bridge.log.createDirFailed":"ディレクトリの作成中にエラーが発生しました:{error}","ui.bridge.log.downloading":"{file} をダウンロード中...","ui.bridge.log.execTimeout":"{seconds} 秒後に実行がタイムアウトしました","ui.bridge.log.executing":"実行中:{file}({chars} 文字)","ui.bridge.log.libraryLoaded":"premiere.jsx を読み込みました:{result}","ui.bridge.log.licenseSaveError":"ライセンスキーの保存中にエラーが発生しました:{error}","ui.bridge.log.loaded":"{name} を読み込みました","ui.bridge.log.noUpdate":"適用するアップデートはありません","ui.bridge.log.readFailed":"読み取りに失敗しました:{file}","ui.bridge.log.resultError":"結果:エラー — {error}","ui.bridge.log.resultOk":"結果:OK","ui.bridge.log.resultOkEmpty":"結果:OK(null/undefined)","ui.bridge.log.resultOkRaw":"結果:OK(生データ)","ui.bridge.log.resultRaw":"結果:{result}","ui.bridge.log.sizeDiffers":"{file} のサイズがマニフェストと異なります({actual} / {expected}) — 続行します","ui.bridge.log.started":"ブリッジを開始しました。一時ディレクトリ:{dir}","ui.bridge.log.stopped":"ブリッジを停止しました","ui.bridge.log.tempDirMissing":"一時ディレクトリを設定してください","ui.bridge.log.tempDirSaved":"一時ディレクトリを保存しました:{dir}","ui.bridge.log.unknownError":"不明","ui.bridge.log.updateAborted":"アップデートを中止しました:{reason}","ui.bridge.log.updateApplied":"アップデート v{version} を適用しました。新しいパネルを読み込むには Premiere Pro を再起動してください。","ui.bridge.log.updateNoLicense":"アップデートに失敗しました:ライセンスキーが保存されていません。設定を開いて、Premiere MCP のライセンスキーを貼り付けてください。","ui.bridge.log.versionUnknown":"警告:Premiere Pro のバージョンを検出できませんでした","ui.bridge.log.writeFailed":"{file} の書き込み中にエラーが発生しました:{error}","ui.bridge.product.statusReady":"パネル準備完了","ui.bridge.product.subtitle":"ブリッジ · {count} 個のツール","ui.bridge.settings.licenseKey":"ライセンスキー","ui.bridge.settings.licensePlaceholder":"Premiere MCP のライセンスキーを貼り付け","ui.bridge.settings.saveLicense":"ライセンスを保存","ui.bridge.stats.commandsProcessed":"処理したコマンド:","ui.bridge.status.errors":"実行中 — 連続エラー {count} 件","ui.bridge.status.polling":"実行中 — {dir} をポーリング中","ui.bridge.status.ready":"準備完了 — 「ブリッジを開始」をクリック","ui.bridge.status.running":"実行中 — {count} 件のコマンドを処理済み","ui.bridge.status.stopped":"停止中","ui.bridge.status.unresponsive":"実行中 — Premiere Pro が応答しません(エラー {count} 件)","ui.bridge.status.updateApplied":"アップデート適用済み — Premiere Pro を再起動してください","ui.bridge.status.updateFailed":"アップデートに失敗しました","ui.bridge.tempDir.label":"一時ディレクトリ","ui.bridge.toolbar.reload":"パネルを再読み込み","ui.bridge.toolbar.settings":"設定","ui.bridge.update.appliedBody":"v{version} を有効にするには、Premiere Pro を終了して再度開いてください。","ui.bridge.update.appliedTitle":"アップデートを適用しました。","ui.bridge.update.available":"アップデートがあります","ui.bridge.update.backupFailed":"{file} のバックアップに失敗しました:{error}","ui.bridge.update.commitFailed":"コミットに失敗しました(ロールバック済み):{error}","ui.bridge.update.downloadFailed":"{file} のダウンロードに失敗しました:{error}","ui.bridge.update.installerHint":"ホットスワップに失敗した場合、またはリリースに新しいマニフェストが必要な場合","ui.bridge.update.later":"後で","ui.bridge.update.now":"今すぐアップデート","ui.bridge.update.ok":"OK","ui.bridge.update.shaMismatch":"{file} の SHA256 が一致しません(取得値 {got}...、期待値 {expected}...)","ui.bridge.update.updating":"アップデート中...","ui.chat.context.noProject":"プロジェクトが開かれていません","ui.chat.context.notConnected":"Premiere Pro に接続されていません","ui.chat.context.refresh":"更新","ui.chat.error.api":"API エラー","ui.chat.error.connectionFailed":"接続に失敗しました","ui.chat.error.network":"ネットワークエラー:{error}","ui.chat.error.noResponse":"応答がありません","ui.chat.error.parse":"応答を解析できませんでした:{error}","ui.chat.error.timeout":"リクエストがタイムアウトしました({seconds} 秒)","ui.chat.error.unknown":"不明なエラー","ui.chat.error.unknownProvider":"不明なプロバイダー:{provider}","ui.chat.field.apiKey":"API キー","ui.chat.field.model":"モデル","ui.chat.header.clear":"チャットをクリア","ui.chat.header.disconnect":"切断","ui.chat.header.settings":"設定","ui.chat.input.placeholder":"プロジェクトの編集を依頼してください...","ui.chat.input.send":"送信","ui.chat.login.apiKeyPlaceholder":"API キーを入力...","ui.chat.login.connect":"接続してチャットを開始","ui.chat.login.connecting":"接続中...","ui.chat.login.emptyKey":"API キーを入力してください。","ui.chat.login.failed":"接続に失敗しました:{error}","ui.chat.login.keyHint":"キーは {link} で取得できます","ui.chat.login.privacy":"API キーはローカルに保存され、このマシンの外に送信されることはありません。","ui.chat.login.subtitle":"AI プロバイダーに接続すると、自然言語で Premiere Pro を操作できます。","ui.chat.login.title":"Premiere Pro AI Chat","ui.chat.login.toggleKey":"キーの表示/非表示","ui.chat.message.empty":"(空の応答)","ui.chat.message.error":"**エラー:** {error}","ui.chat.message.keyInvalid":"**警告:** 保存されている API キーが無効な可能性があります — {error}。設定で更新できます。","ui.chat.script.error":"エラー:{error}","ui.chat.script.execute":"実行","ui.chat.script.noReturn":"(戻り値なし)","ui.chat.script.parseError":"解析エラー:{result}","ui.chat.script.preview":"ExtendScript(プレビュー)","ui.chat.script.result":"ExtendScript の結果","ui.chat.script.running":"実行中...","ui.chat.settings.autoExec":"ExtendScript を自動実行(オフにすると先にプレビュー)","ui.chat.settings.changeApiKey":"API キーを変更","ui.chat.settings.maxTokens":"最大トークン数","ui.chat.settings.save":"保存","ui.chat.settings.systemPrompt":"システムプロンプト(デフォルトに追加)","ui.chat.settings.systemPromptPlaceholder":"カスタムの指示を追加...","ui.chat.settings.temperature":"Temperature","ui.chat.settings.title":"設定","ui.chat.status.error":"エラー","ui.chat.status.executing":"スクリプトを実行中...","ui.chat.status.ready":"準備完了","ui.chat.status.thinking":"考え中...","ui.chat.suggestion.dissolve":"すべてのカットにクロスディゾルブを追加してください","ui.chat.suggestion.export":"H.264 で書き出し","ui.chat.suggestion.exportPrompt":"アクティブなシーケンスを H.264 で書き出してください","ui.chat.suggestion.timeline":"タイムラインにはどんなクリップがありますか?","ui.chat.tokens":"入力 {input} / 出力 {output}","ui.chat.welcome.body":"Premiere Pro での編集をお手伝いします。次のように試してみてください:","ui.chat.welcome.title":"ようこそ!","ui.i18n.language":"言語","ui.i18n.restartNote":"AI 向けのツールの説明は、MCP サーバー(またはそれを実行しているアプリ)を再起動すると言語が切り替わります。","ui.i18n.saveFailed":"言語の設定を保存できませんでした。このセッションの間のみ有効です。","ui.i18n.saved":"言語を保存しました。"}};
|
|
3
|
+
r.SyntheticLocaleHashes = r.SyntheticLocaleHashes || {}; r.SyntheticLocaleHashes["premiere-mcp"] = {"es":{"msg.bridge.blockedPattern":"263b38b5","msg.bridge.parseFailed":"5f538761","msg.bridge.scriptTooLarge":"049aa61a","msg.bridge.timeout":"becb3d16","msg.doctor.allGood":"e0264b61","msg.doctor.language":"913758cb","msg.doctor.languageDefault":"1a8435c8","msg.doctor.languageFrom":"339eeda0","msg.doctor.licenseExpires":"61483c85","msg.doctor.licenseInvalid":"f4b2a2bc","msg.doctor.licenseMissing":"665bd01c","msg.doctor.licenseMissingDetail":"63799f8a","msg.doctor.licenseNoExpiration":"9c75160f","msg.doctor.licensePresent":"e594f97d","msg.doctor.licenseValid":"624e04bb","msg.doctor.nodeTooOld":"c3492426","msg.doctor.os":"9128123b","msg.doctor.premiereFound":"a5ab7ff5","msg.doctor.premiereNotFound":"9b2f2238","msg.doctor.premiereNotFoundDetail":"239015d8","msg.doctor.someFailed":"9e36b06b","msg.doctor.someFailedHint":"269f2da2","msg.doctor.tempNotWritable":"8fc691d4","msg.doctor.tempWritable":"2a624533","msg.doctor.title":"3fbbc7b0","msg.doctor.unknownReason":"1875051f","msg.help.doctor":"6c9e10fa","msg.help.env":"ed0b76a3","msg.help.envLang":"7f9575eb","msg.help.envTempDir":"e829afc3","msg.help.envTimeout":"47ba1123","msg.help.help":"35569a90","msg.help.installCep":"123ed468","msg.help.moreInfo":"fce62bd7","msg.help.start":"a528c428","msg.help.title":"8ef8b355","msg.help.usage":"25d01376","msg.help.version":"13a1bda8","msg.installCep.failed":"9e118dfb","msg.installCep.installing":"fa68fe6b","msg.license.getLicense":"a25ef8cd","msg.license.invalid":"ffe92668","msg.license.missing":"d929d6f6","msg.license.required":"77f55985","msg.license.unreachable":"09275073","msg.resource.extendscriptReference":"092d5431","msg.resource.instructions":"5a0e9ca3","msg.tool.audioEffectsNote":"1be9e9ab","msg.tool.audioTransitionsNote":"693ee041","msg.tool.error":"868c2626","msg.tool.frameCaptured":"7338ef65","msg.tool.frameNotFound":"c2ca4cad","msg.tool.frameReadFailed":"b7de3578","msg.tool.videoEffectsNote":"7a214141","msg.tool.videoTransitionsNote":"f16bd260","ui.bridge.activity.title":"81a9da96","ui.bridge.controls.save":"4d2d5d68","ui.bridge.controls.start":"03ef68a8","ui.bridge.controls.stop":"4b7f7705","ui.bridge.error.execTimeout":"40c86f68","ui.bridge.footer.builtBy":"180c77d8","ui.bridge.header.openSite":"b3f60686","ui.bridge.license.empty":"b35cbae5","ui.bridge.license.none":"9f239ac1","ui.bridge.license.requiredForUpdate":"80bb6c43","ui.bridge.license.saveFailed":"4e19ae84","ui.bridge.license.saved":"31f4a65a","ui.bridge.log.autoStart":"1cb30a1c","ui.bridge.log.createDirFailed":"d47f43cf","ui.bridge.log.downloading":"faf69eff","ui.bridge.log.execTimeout":"98a37a6e","ui.bridge.log.executing":"8294ad88","ui.bridge.log.libraryLoaded":"f31adaf3","ui.bridge.log.licenseSaveError":"460d7c2d","ui.bridge.log.loaded":"0c8244c1","ui.bridge.log.noUpdate":"49715ed0","ui.bridge.log.readFailed":"765978df","ui.bridge.log.resultError":"465fbf44","ui.bridge.log.resultOk":"b02569c8","ui.bridge.log.resultOkEmpty":"d1695661","ui.bridge.log.resultOkRaw":"5105850d","ui.bridge.log.resultRaw":"8134a751","ui.bridge.log.sizeDiffers":"7bfa12df","ui.bridge.log.started":"ece515bb","ui.bridge.log.stopped":"92e4c689","ui.bridge.log.tempDirMissing":"8c19e7e5","ui.bridge.log.tempDirSaved":"99ab7d28","ui.bridge.log.unknownError":"9b759fb9","ui.bridge.log.updateAborted":"de464239","ui.bridge.log.updateApplied":"ed7b437c","ui.bridge.log.updateNoLicense":"58df5a30","ui.bridge.log.versionUnknown":"1255e9fa","ui.bridge.log.writeFailed":"be0a8cd1","ui.bridge.product.statusReady":"f2a5300e","ui.bridge.product.subtitle":"7494b771","ui.bridge.settings.licenseKey":"c4eed0bb","ui.bridge.settings.licensePlaceholder":"b8d6dbd2","ui.bridge.settings.saveLicense":"3e2eb03b","ui.bridge.stats.commandsProcessed":"01a262f7","ui.bridge.status.errors":"6bffbfed","ui.bridge.status.polling":"38a776e0","ui.bridge.status.ready":"e7d3d2c1","ui.bridge.status.running":"0e39559f","ui.bridge.status.stopped":"863f19ee","ui.bridge.status.unresponsive":"b67c3126","ui.bridge.status.updateApplied":"7eef460e","ui.bridge.status.updateFailed":"e4a171b1","ui.bridge.tempDir.label":"c5e8b308","ui.bridge.toolbar.reload":"a9264292","ui.bridge.toolbar.settings":"4b058728","ui.bridge.update.appliedBody":"02fabe4d","ui.bridge.update.appliedTitle":"e059a7bd","ui.bridge.update.available":"676409df","ui.bridge.update.backupFailed":"4dfd20db","ui.bridge.update.commitFailed":"645c5b5d","ui.bridge.update.downloadFailed":"2b7027e1","ui.bridge.update.installerHint":"fb0924bc","ui.bridge.update.later":"f7f62b49","ui.bridge.update.now":"e9601784","ui.bridge.update.ok":"85e4b82f","ui.bridge.update.shaMismatch":"d7d16526","ui.bridge.update.updating":"64d870e3","ui.chat.context.noProject":"8fb689c1","ui.chat.context.notConnected":"594cf25a","ui.chat.context.refresh":"0815aad4","ui.chat.error.api":"4443e9d1","ui.chat.error.connectionFailed":"21329016","ui.chat.error.network":"d7c168cb","ui.chat.error.noResponse":"4d2fe93c","ui.chat.error.parse":"5f538761","ui.chat.error.timeout":"d6f87ea2","ui.chat.error.unknown":"ce512b43","ui.chat.error.unknownProvider":"f4c01abf","ui.chat.field.apiKey":"4ef4c78c","ui.chat.field.model":"8285e8fa","ui.chat.header.clear":"5df1ac98","ui.chat.header.disconnect":"da84790b","ui.chat.header.settings":"4b058728","ui.chat.input.placeholder":"6a19f5bf","ui.chat.input.send":"f28e14cf","ui.chat.login.apiKeyPlaceholder":"03ad33c7","ui.chat.login.connect":"62854feb","ui.chat.login.connecting":"c4d22f83","ui.chat.login.emptyKey":"d3a24e73","ui.chat.login.failed":"3c283b94","ui.chat.login.keyHint":"969cb36c","ui.chat.login.privacy":"3045552e","ui.chat.login.subtitle":"d3a16144","ui.chat.login.title":"0a4b8c69","ui.chat.login.toggleKey":"36e9906a","ui.chat.message.empty":"2d91e666","ui.chat.message.error":"086ba5d9","ui.chat.message.keyInvalid":"cffa94a1","ui.chat.script.error":"056370c9","ui.chat.script.execute":"26c0a538","ui.chat.script.noReturn":"dfb4d922","ui.chat.script.parseError":"6e6988ef","ui.chat.script.preview":"b5b4f6d1","ui.chat.script.result":"bcb457ab","ui.chat.script.running":"9a768cc2","ui.chat.settings.autoExec":"e53c5db6","ui.chat.settings.changeApiKey":"94e131de","ui.chat.settings.maxTokens":"2143e4f1","ui.chat.settings.save":"4d2d5d68","ui.chat.settings.systemPrompt":"7edd0560","ui.chat.settings.systemPromptPlaceholder":"17aa1baa","ui.chat.settings.temperature":"efd604d5","ui.chat.settings.title":"4b058728","ui.chat.status.error":"f38d9cf1","ui.chat.status.executing":"36bf35e4","ui.chat.status.ready":"0bca3294","ui.chat.status.thinking":"1795b591","ui.chat.suggestion.dissolve":"ff1f900d","ui.chat.suggestion.export":"4e171f6f","ui.chat.suggestion.exportPrompt":"c966a013","ui.chat.suggestion.timeline":"0c377145","ui.chat.tokens":"85577920","ui.chat.welcome.body":"fcbf61ec","ui.chat.welcome.title":"13cb3336","ui.i18n.language":"9a73db9b","ui.i18n.restartNote":"3b4de3f7","ui.i18n.saveFailed":"f37363a2","ui.i18n.saved":"f93e683a"},"pt-BR":{"msg.bridge.blockedPattern":"263b38b5","msg.bridge.parseFailed":"5f538761","msg.bridge.scriptTooLarge":"049aa61a","msg.bridge.timeout":"becb3d16","msg.doctor.allGood":"e0264b61","msg.doctor.language":"913758cb","msg.doctor.languageDefault":"1a8435c8","msg.doctor.languageFrom":"339eeda0","msg.doctor.licenseExpires":"61483c85","msg.doctor.licenseInvalid":"f4b2a2bc","msg.doctor.licenseMissing":"665bd01c","msg.doctor.licenseMissingDetail":"63799f8a","msg.doctor.licenseNoExpiration":"9c75160f","msg.doctor.licensePresent":"e594f97d","msg.doctor.licenseValid":"624e04bb","msg.doctor.nodeTooOld":"c3492426","msg.doctor.os":"9128123b","msg.doctor.premiereFound":"a5ab7ff5","msg.doctor.premiereNotFound":"9b2f2238","msg.doctor.premiereNotFoundDetail":"239015d8","msg.doctor.someFailed":"9e36b06b","msg.doctor.someFailedHint":"269f2da2","msg.doctor.tempNotWritable":"8fc691d4","msg.doctor.tempWritable":"2a624533","msg.doctor.title":"3fbbc7b0","msg.doctor.unknownReason":"1875051f","msg.help.doctor":"6c9e10fa","msg.help.env":"ed0b76a3","msg.help.envLang":"7f9575eb","msg.help.envTempDir":"e829afc3","msg.help.envTimeout":"47ba1123","msg.help.help":"35569a90","msg.help.installCep":"123ed468","msg.help.moreInfo":"fce62bd7","msg.help.start":"a528c428","msg.help.title":"8ef8b355","msg.help.usage":"25d01376","msg.help.version":"13a1bda8","msg.installCep.failed":"9e118dfb","msg.installCep.installing":"fa68fe6b","msg.license.getLicense":"a25ef8cd","msg.license.invalid":"ffe92668","msg.license.missing":"d929d6f6","msg.license.required":"77f55985","msg.license.unreachable":"09275073","msg.resource.extendscriptReference":"092d5431","msg.resource.instructions":"5a0e9ca3","msg.tool.audioEffectsNote":"1be9e9ab","msg.tool.audioTransitionsNote":"693ee041","msg.tool.error":"868c2626","msg.tool.frameCaptured":"7338ef65","msg.tool.frameNotFound":"c2ca4cad","msg.tool.frameReadFailed":"b7de3578","msg.tool.videoEffectsNote":"7a214141","msg.tool.videoTransitionsNote":"f16bd260","ui.bridge.activity.title":"81a9da96","ui.bridge.controls.save":"4d2d5d68","ui.bridge.controls.start":"03ef68a8","ui.bridge.controls.stop":"4b7f7705","ui.bridge.error.execTimeout":"40c86f68","ui.bridge.footer.builtBy":"180c77d8","ui.bridge.header.openSite":"b3f60686","ui.bridge.license.empty":"b35cbae5","ui.bridge.license.none":"9f239ac1","ui.bridge.license.requiredForUpdate":"80bb6c43","ui.bridge.license.saveFailed":"4e19ae84","ui.bridge.license.saved":"31f4a65a","ui.bridge.log.autoStart":"1cb30a1c","ui.bridge.log.createDirFailed":"d47f43cf","ui.bridge.log.downloading":"faf69eff","ui.bridge.log.execTimeout":"98a37a6e","ui.bridge.log.executing":"8294ad88","ui.bridge.log.libraryLoaded":"f31adaf3","ui.bridge.log.licenseSaveError":"460d7c2d","ui.bridge.log.loaded":"0c8244c1","ui.bridge.log.noUpdate":"49715ed0","ui.bridge.log.readFailed":"765978df","ui.bridge.log.resultError":"465fbf44","ui.bridge.log.resultOk":"b02569c8","ui.bridge.log.resultOkEmpty":"d1695661","ui.bridge.log.resultOkRaw":"5105850d","ui.bridge.log.resultRaw":"8134a751","ui.bridge.log.sizeDiffers":"7bfa12df","ui.bridge.log.started":"ece515bb","ui.bridge.log.stopped":"92e4c689","ui.bridge.log.tempDirMissing":"8c19e7e5","ui.bridge.log.tempDirSaved":"99ab7d28","ui.bridge.log.unknownError":"9b759fb9","ui.bridge.log.updateAborted":"de464239","ui.bridge.log.updateApplied":"ed7b437c","ui.bridge.log.updateNoLicense":"58df5a30","ui.bridge.log.versionUnknown":"1255e9fa","ui.bridge.log.writeFailed":"be0a8cd1","ui.bridge.product.statusReady":"f2a5300e","ui.bridge.product.subtitle":"7494b771","ui.bridge.settings.licenseKey":"c4eed0bb","ui.bridge.settings.licensePlaceholder":"b8d6dbd2","ui.bridge.settings.saveLicense":"3e2eb03b","ui.bridge.stats.commandsProcessed":"01a262f7","ui.bridge.status.errors":"6bffbfed","ui.bridge.status.polling":"38a776e0","ui.bridge.status.ready":"e7d3d2c1","ui.bridge.status.running":"0e39559f","ui.bridge.status.stopped":"863f19ee","ui.bridge.status.unresponsive":"b67c3126","ui.bridge.status.updateApplied":"7eef460e","ui.bridge.status.updateFailed":"e4a171b1","ui.bridge.tempDir.label":"c5e8b308","ui.bridge.toolbar.reload":"a9264292","ui.bridge.toolbar.settings":"4b058728","ui.bridge.update.appliedBody":"02fabe4d","ui.bridge.update.appliedTitle":"e059a7bd","ui.bridge.update.available":"676409df","ui.bridge.update.backupFailed":"4dfd20db","ui.bridge.update.commitFailed":"645c5b5d","ui.bridge.update.downloadFailed":"2b7027e1","ui.bridge.update.installerHint":"fb0924bc","ui.bridge.update.later":"f7f62b49","ui.bridge.update.now":"e9601784","ui.bridge.update.ok":"85e4b82f","ui.bridge.update.shaMismatch":"d7d16526","ui.bridge.update.updating":"64d870e3","ui.chat.context.noProject":"8fb689c1","ui.chat.context.notConnected":"594cf25a","ui.chat.context.refresh":"0815aad4","ui.chat.error.api":"4443e9d1","ui.chat.error.connectionFailed":"21329016","ui.chat.error.network":"d7c168cb","ui.chat.error.noResponse":"4d2fe93c","ui.chat.error.parse":"5f538761","ui.chat.error.timeout":"d6f87ea2","ui.chat.error.unknown":"ce512b43","ui.chat.error.unknownProvider":"f4c01abf","ui.chat.field.apiKey":"4ef4c78c","ui.chat.field.model":"8285e8fa","ui.chat.header.clear":"5df1ac98","ui.chat.header.disconnect":"da84790b","ui.chat.header.settings":"4b058728","ui.chat.input.placeholder":"6a19f5bf","ui.chat.input.send":"f28e14cf","ui.chat.login.apiKeyPlaceholder":"03ad33c7","ui.chat.login.connect":"62854feb","ui.chat.login.connecting":"c4d22f83","ui.chat.login.emptyKey":"d3a24e73","ui.chat.login.failed":"3c283b94","ui.chat.login.keyHint":"969cb36c","ui.chat.login.privacy":"3045552e","ui.chat.login.subtitle":"d3a16144","ui.chat.login.title":"0a4b8c69","ui.chat.login.toggleKey":"36e9906a","ui.chat.message.empty":"2d91e666","ui.chat.message.error":"086ba5d9","ui.chat.message.keyInvalid":"cffa94a1","ui.chat.script.error":"056370c9","ui.chat.script.execute":"26c0a538","ui.chat.script.noReturn":"dfb4d922","ui.chat.script.parseError":"6e6988ef","ui.chat.script.preview":"b5b4f6d1","ui.chat.script.result":"bcb457ab","ui.chat.script.running":"9a768cc2","ui.chat.settings.autoExec":"e53c5db6","ui.chat.settings.changeApiKey":"94e131de","ui.chat.settings.maxTokens":"2143e4f1","ui.chat.settings.save":"4d2d5d68","ui.chat.settings.systemPrompt":"7edd0560","ui.chat.settings.systemPromptPlaceholder":"17aa1baa","ui.chat.settings.temperature":"efd604d5","ui.chat.settings.title":"4b058728","ui.chat.status.error":"f38d9cf1","ui.chat.status.executing":"36bf35e4","ui.chat.status.ready":"0bca3294","ui.chat.status.thinking":"1795b591","ui.chat.suggestion.dissolve":"ff1f900d","ui.chat.suggestion.export":"4e171f6f","ui.chat.suggestion.exportPrompt":"c966a013","ui.chat.suggestion.timeline":"0c377145","ui.chat.tokens":"85577920","ui.chat.welcome.body":"fcbf61ec","ui.chat.welcome.title":"13cb3336","ui.i18n.language":"9a73db9b","ui.i18n.restartNote":"3b4de3f7","ui.i18n.saveFailed":"f37363a2","ui.i18n.saved":"f93e683a"},"fr":{"msg.bridge.blockedPattern":"263b38b5","msg.bridge.parseFailed":"5f538761","msg.bridge.scriptTooLarge":"049aa61a","msg.bridge.timeout":"becb3d16","msg.doctor.allGood":"e0264b61","msg.doctor.language":"913758cb","msg.doctor.languageDefault":"1a8435c8","msg.doctor.languageFrom":"339eeda0","msg.doctor.licenseExpires":"61483c85","msg.doctor.licenseInvalid":"f4b2a2bc","msg.doctor.licenseMissing":"665bd01c","msg.doctor.licenseMissingDetail":"63799f8a","msg.doctor.licenseNoExpiration":"9c75160f","msg.doctor.licensePresent":"e594f97d","msg.doctor.licenseValid":"624e04bb","msg.doctor.nodeTooOld":"c3492426","msg.doctor.os":"9128123b","msg.doctor.premiereFound":"a5ab7ff5","msg.doctor.premiereNotFound":"9b2f2238","msg.doctor.premiereNotFoundDetail":"239015d8","msg.doctor.someFailed":"9e36b06b","msg.doctor.someFailedHint":"269f2da2","msg.doctor.tempNotWritable":"8fc691d4","msg.doctor.tempWritable":"2a624533","msg.doctor.title":"3fbbc7b0","msg.doctor.unknownReason":"1875051f","msg.help.doctor":"6c9e10fa","msg.help.env":"ed0b76a3","msg.help.envLang":"7f9575eb","msg.help.envTempDir":"e829afc3","msg.help.envTimeout":"47ba1123","msg.help.help":"35569a90","msg.help.installCep":"123ed468","msg.help.moreInfo":"fce62bd7","msg.help.start":"a528c428","msg.help.title":"8ef8b355","msg.help.usage":"25d01376","msg.help.version":"13a1bda8","msg.installCep.failed":"9e118dfb","msg.installCep.installing":"fa68fe6b","msg.license.getLicense":"a25ef8cd","msg.license.invalid":"ffe92668","msg.license.missing":"d929d6f6","msg.license.required":"77f55985","msg.license.unreachable":"09275073","msg.resource.extendscriptReference":"092d5431","msg.resource.instructions":"5a0e9ca3","msg.tool.audioEffectsNote":"1be9e9ab","msg.tool.audioTransitionsNote":"693ee041","msg.tool.error":"868c2626","msg.tool.frameCaptured":"7338ef65","msg.tool.frameNotFound":"c2ca4cad","msg.tool.frameReadFailed":"b7de3578","msg.tool.videoEffectsNote":"7a214141","msg.tool.videoTransitionsNote":"f16bd260","ui.bridge.activity.title":"81a9da96","ui.bridge.controls.save":"4d2d5d68","ui.bridge.controls.start":"03ef68a8","ui.bridge.controls.stop":"4b7f7705","ui.bridge.error.execTimeout":"40c86f68","ui.bridge.footer.builtBy":"180c77d8","ui.bridge.header.openSite":"b3f60686","ui.bridge.license.empty":"b35cbae5","ui.bridge.license.none":"9f239ac1","ui.bridge.license.requiredForUpdate":"80bb6c43","ui.bridge.license.saveFailed":"4e19ae84","ui.bridge.license.saved":"31f4a65a","ui.bridge.log.autoStart":"1cb30a1c","ui.bridge.log.createDirFailed":"d47f43cf","ui.bridge.log.downloading":"faf69eff","ui.bridge.log.execTimeout":"98a37a6e","ui.bridge.log.executing":"8294ad88","ui.bridge.log.libraryLoaded":"f31adaf3","ui.bridge.log.licenseSaveError":"460d7c2d","ui.bridge.log.loaded":"0c8244c1","ui.bridge.log.noUpdate":"49715ed0","ui.bridge.log.readFailed":"765978df","ui.bridge.log.resultError":"465fbf44","ui.bridge.log.resultOk":"b02569c8","ui.bridge.log.resultOkEmpty":"d1695661","ui.bridge.log.resultOkRaw":"5105850d","ui.bridge.log.resultRaw":"8134a751","ui.bridge.log.sizeDiffers":"7bfa12df","ui.bridge.log.started":"ece515bb","ui.bridge.log.stopped":"92e4c689","ui.bridge.log.tempDirMissing":"8c19e7e5","ui.bridge.log.tempDirSaved":"99ab7d28","ui.bridge.log.unknownError":"9b759fb9","ui.bridge.log.updateAborted":"de464239","ui.bridge.log.updateApplied":"ed7b437c","ui.bridge.log.updateNoLicense":"58df5a30","ui.bridge.log.versionUnknown":"1255e9fa","ui.bridge.log.writeFailed":"be0a8cd1","ui.bridge.product.statusReady":"f2a5300e","ui.bridge.product.subtitle":"7494b771","ui.bridge.settings.licenseKey":"c4eed0bb","ui.bridge.settings.licensePlaceholder":"b8d6dbd2","ui.bridge.settings.saveLicense":"3e2eb03b","ui.bridge.stats.commandsProcessed":"01a262f7","ui.bridge.status.errors":"6bffbfed","ui.bridge.status.polling":"38a776e0","ui.bridge.status.ready":"e7d3d2c1","ui.bridge.status.running":"0e39559f","ui.bridge.status.stopped":"863f19ee","ui.bridge.status.unresponsive":"b67c3126","ui.bridge.status.updateApplied":"7eef460e","ui.bridge.status.updateFailed":"e4a171b1","ui.bridge.tempDir.label":"c5e8b308","ui.bridge.toolbar.reload":"a9264292","ui.bridge.toolbar.settings":"4b058728","ui.bridge.update.appliedBody":"02fabe4d","ui.bridge.update.appliedTitle":"e059a7bd","ui.bridge.update.available":"676409df","ui.bridge.update.backupFailed":"4dfd20db","ui.bridge.update.commitFailed":"645c5b5d","ui.bridge.update.downloadFailed":"2b7027e1","ui.bridge.update.installerHint":"fb0924bc","ui.bridge.update.later":"f7f62b49","ui.bridge.update.now":"e9601784","ui.bridge.update.ok":"85e4b82f","ui.bridge.update.shaMismatch":"d7d16526","ui.bridge.update.updating":"64d870e3","ui.chat.context.noProject":"8fb689c1","ui.chat.context.notConnected":"594cf25a","ui.chat.context.refresh":"0815aad4","ui.chat.error.api":"4443e9d1","ui.chat.error.connectionFailed":"21329016","ui.chat.error.network":"d7c168cb","ui.chat.error.noResponse":"4d2fe93c","ui.chat.error.parse":"5f538761","ui.chat.error.timeout":"d6f87ea2","ui.chat.error.unknown":"ce512b43","ui.chat.error.unknownProvider":"f4c01abf","ui.chat.field.apiKey":"4ef4c78c","ui.chat.field.model":"8285e8fa","ui.chat.header.clear":"5df1ac98","ui.chat.header.disconnect":"da84790b","ui.chat.header.settings":"4b058728","ui.chat.input.placeholder":"6a19f5bf","ui.chat.input.send":"f28e14cf","ui.chat.login.apiKeyPlaceholder":"03ad33c7","ui.chat.login.connect":"62854feb","ui.chat.login.connecting":"c4d22f83","ui.chat.login.emptyKey":"d3a24e73","ui.chat.login.failed":"3c283b94","ui.chat.login.keyHint":"969cb36c","ui.chat.login.privacy":"3045552e","ui.chat.login.subtitle":"d3a16144","ui.chat.login.title":"0a4b8c69","ui.chat.login.toggleKey":"36e9906a","ui.chat.message.empty":"2d91e666","ui.chat.message.error":"086ba5d9","ui.chat.message.keyInvalid":"cffa94a1","ui.chat.script.error":"056370c9","ui.chat.script.execute":"26c0a538","ui.chat.script.noReturn":"dfb4d922","ui.chat.script.parseError":"6e6988ef","ui.chat.script.preview":"b5b4f6d1","ui.chat.script.result":"bcb457ab","ui.chat.script.running":"9a768cc2","ui.chat.settings.autoExec":"e53c5db6","ui.chat.settings.changeApiKey":"94e131de","ui.chat.settings.maxTokens":"2143e4f1","ui.chat.settings.save":"4d2d5d68","ui.chat.settings.systemPrompt":"7edd0560","ui.chat.settings.systemPromptPlaceholder":"17aa1baa","ui.chat.settings.temperature":"efd604d5","ui.chat.settings.title":"4b058728","ui.chat.status.error":"f38d9cf1","ui.chat.status.executing":"36bf35e4","ui.chat.status.ready":"0bca3294","ui.chat.status.thinking":"1795b591","ui.chat.suggestion.dissolve":"ff1f900d","ui.chat.suggestion.export":"4e171f6f","ui.chat.suggestion.exportPrompt":"c966a013","ui.chat.suggestion.timeline":"0c377145","ui.chat.tokens":"85577920","ui.chat.welcome.body":"fcbf61ec","ui.chat.welcome.title":"13cb3336","ui.i18n.language":"9a73db9b","ui.i18n.restartNote":"3b4de3f7","ui.i18n.saveFailed":"f37363a2","ui.i18n.saved":"f93e683a"},"de":{"msg.bridge.blockedPattern":"263b38b5","msg.bridge.parseFailed":"5f538761","msg.bridge.scriptTooLarge":"049aa61a","msg.bridge.timeout":"becb3d16","msg.doctor.allGood":"e0264b61","msg.doctor.language":"913758cb","msg.doctor.languageDefault":"1a8435c8","msg.doctor.languageFrom":"339eeda0","msg.doctor.licenseExpires":"61483c85","msg.doctor.licenseInvalid":"f4b2a2bc","msg.doctor.licenseMissing":"665bd01c","msg.doctor.licenseMissingDetail":"63799f8a","msg.doctor.licenseNoExpiration":"9c75160f","msg.doctor.licensePresent":"e594f97d","msg.doctor.licenseValid":"624e04bb","msg.doctor.nodeTooOld":"c3492426","msg.doctor.os":"9128123b","msg.doctor.premiereFound":"a5ab7ff5","msg.doctor.premiereNotFound":"9b2f2238","msg.doctor.premiereNotFoundDetail":"239015d8","msg.doctor.someFailed":"9e36b06b","msg.doctor.someFailedHint":"269f2da2","msg.doctor.tempNotWritable":"8fc691d4","msg.doctor.tempWritable":"2a624533","msg.doctor.title":"3fbbc7b0","msg.doctor.unknownReason":"1875051f","msg.help.doctor":"6c9e10fa","msg.help.env":"ed0b76a3","msg.help.envLang":"7f9575eb","msg.help.envTempDir":"e829afc3","msg.help.envTimeout":"47ba1123","msg.help.help":"35569a90","msg.help.installCep":"123ed468","msg.help.moreInfo":"fce62bd7","msg.help.start":"a528c428","msg.help.title":"8ef8b355","msg.help.usage":"25d01376","msg.help.version":"13a1bda8","msg.installCep.failed":"9e118dfb","msg.installCep.installing":"fa68fe6b","msg.license.getLicense":"a25ef8cd","msg.license.invalid":"ffe92668","msg.license.missing":"d929d6f6","msg.license.required":"77f55985","msg.license.unreachable":"09275073","msg.resource.extendscriptReference":"092d5431","msg.resource.instructions":"5a0e9ca3","msg.tool.audioEffectsNote":"1be9e9ab","msg.tool.audioTransitionsNote":"693ee041","msg.tool.error":"868c2626","msg.tool.frameCaptured":"7338ef65","msg.tool.frameNotFound":"c2ca4cad","msg.tool.frameReadFailed":"b7de3578","msg.tool.videoEffectsNote":"7a214141","msg.tool.videoTransitionsNote":"f16bd260","ui.bridge.activity.title":"81a9da96","ui.bridge.controls.save":"4d2d5d68","ui.bridge.controls.start":"03ef68a8","ui.bridge.controls.stop":"4b7f7705","ui.bridge.error.execTimeout":"40c86f68","ui.bridge.footer.builtBy":"180c77d8","ui.bridge.header.openSite":"b3f60686","ui.bridge.license.empty":"b35cbae5","ui.bridge.license.none":"9f239ac1","ui.bridge.license.requiredForUpdate":"80bb6c43","ui.bridge.license.saveFailed":"4e19ae84","ui.bridge.license.saved":"31f4a65a","ui.bridge.log.autoStart":"1cb30a1c","ui.bridge.log.createDirFailed":"d47f43cf","ui.bridge.log.downloading":"faf69eff","ui.bridge.log.execTimeout":"98a37a6e","ui.bridge.log.executing":"8294ad88","ui.bridge.log.libraryLoaded":"f31adaf3","ui.bridge.log.licenseSaveError":"460d7c2d","ui.bridge.log.loaded":"0c8244c1","ui.bridge.log.noUpdate":"49715ed0","ui.bridge.log.readFailed":"765978df","ui.bridge.log.resultError":"465fbf44","ui.bridge.log.resultOk":"b02569c8","ui.bridge.log.resultOkEmpty":"d1695661","ui.bridge.log.resultOkRaw":"5105850d","ui.bridge.log.resultRaw":"8134a751","ui.bridge.log.sizeDiffers":"7bfa12df","ui.bridge.log.started":"ece515bb","ui.bridge.log.stopped":"92e4c689","ui.bridge.log.tempDirMissing":"8c19e7e5","ui.bridge.log.tempDirSaved":"99ab7d28","ui.bridge.log.unknownError":"9b759fb9","ui.bridge.log.updateAborted":"de464239","ui.bridge.log.updateApplied":"ed7b437c","ui.bridge.log.updateNoLicense":"58df5a30","ui.bridge.log.versionUnknown":"1255e9fa","ui.bridge.log.writeFailed":"be0a8cd1","ui.bridge.product.statusReady":"f2a5300e","ui.bridge.product.subtitle":"7494b771","ui.bridge.settings.licenseKey":"c4eed0bb","ui.bridge.settings.licensePlaceholder":"b8d6dbd2","ui.bridge.settings.saveLicense":"3e2eb03b","ui.bridge.stats.commandsProcessed":"01a262f7","ui.bridge.status.errors":"6bffbfed","ui.bridge.status.polling":"38a776e0","ui.bridge.status.ready":"e7d3d2c1","ui.bridge.status.running":"0e39559f","ui.bridge.status.stopped":"863f19ee","ui.bridge.status.unresponsive":"b67c3126","ui.bridge.status.updateApplied":"7eef460e","ui.bridge.status.updateFailed":"e4a171b1","ui.bridge.tempDir.label":"c5e8b308","ui.bridge.toolbar.reload":"a9264292","ui.bridge.toolbar.settings":"4b058728","ui.bridge.update.appliedBody":"02fabe4d","ui.bridge.update.appliedTitle":"e059a7bd","ui.bridge.update.available":"676409df","ui.bridge.update.backupFailed":"4dfd20db","ui.bridge.update.commitFailed":"645c5b5d","ui.bridge.update.downloadFailed":"2b7027e1","ui.bridge.update.installerHint":"fb0924bc","ui.bridge.update.later":"f7f62b49","ui.bridge.update.now":"e9601784","ui.bridge.update.ok":"85e4b82f","ui.bridge.update.shaMismatch":"d7d16526","ui.bridge.update.updating":"64d870e3","ui.chat.context.noProject":"8fb689c1","ui.chat.context.notConnected":"594cf25a","ui.chat.context.refresh":"0815aad4","ui.chat.error.api":"4443e9d1","ui.chat.error.connectionFailed":"21329016","ui.chat.error.network":"d7c168cb","ui.chat.error.noResponse":"4d2fe93c","ui.chat.error.parse":"5f538761","ui.chat.error.timeout":"d6f87ea2","ui.chat.error.unknown":"ce512b43","ui.chat.error.unknownProvider":"f4c01abf","ui.chat.field.apiKey":"4ef4c78c","ui.chat.field.model":"8285e8fa","ui.chat.header.clear":"5df1ac98","ui.chat.header.disconnect":"da84790b","ui.chat.header.settings":"4b058728","ui.chat.input.placeholder":"6a19f5bf","ui.chat.input.send":"f28e14cf","ui.chat.login.apiKeyPlaceholder":"03ad33c7","ui.chat.login.connect":"62854feb","ui.chat.login.connecting":"c4d22f83","ui.chat.login.emptyKey":"d3a24e73","ui.chat.login.failed":"3c283b94","ui.chat.login.keyHint":"969cb36c","ui.chat.login.privacy":"3045552e","ui.chat.login.subtitle":"d3a16144","ui.chat.login.title":"0a4b8c69","ui.chat.login.toggleKey":"36e9906a","ui.chat.message.empty":"2d91e666","ui.chat.message.error":"086ba5d9","ui.chat.message.keyInvalid":"cffa94a1","ui.chat.script.error":"056370c9","ui.chat.script.execute":"26c0a538","ui.chat.script.noReturn":"dfb4d922","ui.chat.script.parseError":"6e6988ef","ui.chat.script.preview":"b5b4f6d1","ui.chat.script.result":"bcb457ab","ui.chat.script.running":"9a768cc2","ui.chat.settings.autoExec":"e53c5db6","ui.chat.settings.changeApiKey":"94e131de","ui.chat.settings.maxTokens":"2143e4f1","ui.chat.settings.save":"4d2d5d68","ui.chat.settings.systemPrompt":"7edd0560","ui.chat.settings.systemPromptPlaceholder":"17aa1baa","ui.chat.settings.temperature":"efd604d5","ui.chat.settings.title":"4b058728","ui.chat.status.error":"f38d9cf1","ui.chat.status.executing":"36bf35e4","ui.chat.status.ready":"0bca3294","ui.chat.status.thinking":"1795b591","ui.chat.suggestion.dissolve":"ff1f900d","ui.chat.suggestion.export":"4e171f6f","ui.chat.suggestion.exportPrompt":"c966a013","ui.chat.suggestion.timeline":"0c377145","ui.chat.tokens":"85577920","ui.chat.welcome.body":"fcbf61ec","ui.chat.welcome.title":"13cb3336","ui.i18n.language":"9a73db9b","ui.i18n.restartNote":"3b4de3f7","ui.i18n.saveFailed":"f37363a2","ui.i18n.saved":"f93e683a"},"ja":{"msg.bridge.blockedPattern":"263b38b5","msg.bridge.parseFailed":"5f538761","msg.bridge.scriptTooLarge":"049aa61a","msg.bridge.timeout":"becb3d16","msg.doctor.allGood":"e0264b61","msg.doctor.language":"913758cb","msg.doctor.languageDefault":"1a8435c8","msg.doctor.languageFrom":"339eeda0","msg.doctor.licenseExpires":"61483c85","msg.doctor.licenseInvalid":"f4b2a2bc","msg.doctor.licenseMissing":"665bd01c","msg.doctor.licenseMissingDetail":"63799f8a","msg.doctor.licenseNoExpiration":"9c75160f","msg.doctor.licensePresent":"e594f97d","msg.doctor.licenseValid":"624e04bb","msg.doctor.nodeTooOld":"c3492426","msg.doctor.os":"9128123b","msg.doctor.premiereFound":"a5ab7ff5","msg.doctor.premiereNotFound":"9b2f2238","msg.doctor.premiereNotFoundDetail":"239015d8","msg.doctor.someFailed":"9e36b06b","msg.doctor.someFailedHint":"269f2da2","msg.doctor.tempNotWritable":"8fc691d4","msg.doctor.tempWritable":"2a624533","msg.doctor.title":"3fbbc7b0","msg.doctor.unknownReason":"1875051f","msg.help.doctor":"6c9e10fa","msg.help.env":"ed0b76a3","msg.help.envLang":"7f9575eb","msg.help.envTempDir":"e829afc3","msg.help.envTimeout":"47ba1123","msg.help.help":"35569a90","msg.help.installCep":"123ed468","msg.help.moreInfo":"fce62bd7","msg.help.start":"a528c428","msg.help.title":"8ef8b355","msg.help.usage":"25d01376","msg.help.version":"13a1bda8","msg.installCep.failed":"9e118dfb","msg.installCep.installing":"fa68fe6b","msg.license.getLicense":"a25ef8cd","msg.license.invalid":"ffe92668","msg.license.missing":"d929d6f6","msg.license.required":"77f55985","msg.license.unreachable":"09275073","msg.resource.extendscriptReference":"092d5431","msg.resource.instructions":"5a0e9ca3","msg.tool.audioEffectsNote":"1be9e9ab","msg.tool.audioTransitionsNote":"693ee041","msg.tool.error":"868c2626","msg.tool.frameCaptured":"7338ef65","msg.tool.frameNotFound":"c2ca4cad","msg.tool.frameReadFailed":"b7de3578","msg.tool.videoEffectsNote":"7a214141","msg.tool.videoTransitionsNote":"f16bd260","ui.bridge.activity.title":"81a9da96","ui.bridge.controls.save":"4d2d5d68","ui.bridge.controls.start":"03ef68a8","ui.bridge.controls.stop":"4b7f7705","ui.bridge.error.execTimeout":"40c86f68","ui.bridge.footer.builtBy":"180c77d8","ui.bridge.header.openSite":"b3f60686","ui.bridge.license.empty":"b35cbae5","ui.bridge.license.none":"9f239ac1","ui.bridge.license.requiredForUpdate":"80bb6c43","ui.bridge.license.saveFailed":"4e19ae84","ui.bridge.license.saved":"31f4a65a","ui.bridge.log.autoStart":"1cb30a1c","ui.bridge.log.createDirFailed":"d47f43cf","ui.bridge.log.downloading":"faf69eff","ui.bridge.log.execTimeout":"98a37a6e","ui.bridge.log.executing":"8294ad88","ui.bridge.log.libraryLoaded":"f31adaf3","ui.bridge.log.licenseSaveError":"460d7c2d","ui.bridge.log.loaded":"0c8244c1","ui.bridge.log.noUpdate":"49715ed0","ui.bridge.log.readFailed":"765978df","ui.bridge.log.resultError":"465fbf44","ui.bridge.log.resultOk":"b02569c8","ui.bridge.log.resultOkEmpty":"d1695661","ui.bridge.log.resultOkRaw":"5105850d","ui.bridge.log.resultRaw":"8134a751","ui.bridge.log.sizeDiffers":"7bfa12df","ui.bridge.log.started":"ece515bb","ui.bridge.log.stopped":"92e4c689","ui.bridge.log.tempDirMissing":"8c19e7e5","ui.bridge.log.tempDirSaved":"99ab7d28","ui.bridge.log.unknownError":"9b759fb9","ui.bridge.log.updateAborted":"de464239","ui.bridge.log.updateApplied":"ed7b437c","ui.bridge.log.updateNoLicense":"58df5a30","ui.bridge.log.versionUnknown":"1255e9fa","ui.bridge.log.writeFailed":"be0a8cd1","ui.bridge.product.statusReady":"f2a5300e","ui.bridge.product.subtitle":"7494b771","ui.bridge.settings.licenseKey":"c4eed0bb","ui.bridge.settings.licensePlaceholder":"b8d6dbd2","ui.bridge.settings.saveLicense":"3e2eb03b","ui.bridge.stats.commandsProcessed":"01a262f7","ui.bridge.status.errors":"6bffbfed","ui.bridge.status.polling":"38a776e0","ui.bridge.status.ready":"e7d3d2c1","ui.bridge.status.running":"0e39559f","ui.bridge.status.stopped":"863f19ee","ui.bridge.status.unresponsive":"b67c3126","ui.bridge.status.updateApplied":"7eef460e","ui.bridge.status.updateFailed":"e4a171b1","ui.bridge.tempDir.label":"c5e8b308","ui.bridge.toolbar.reload":"a9264292","ui.bridge.toolbar.settings":"4b058728","ui.bridge.update.appliedBody":"02fabe4d","ui.bridge.update.appliedTitle":"e059a7bd","ui.bridge.update.available":"676409df","ui.bridge.update.backupFailed":"4dfd20db","ui.bridge.update.commitFailed":"645c5b5d","ui.bridge.update.downloadFailed":"2b7027e1","ui.bridge.update.installerHint":"fb0924bc","ui.bridge.update.later":"f7f62b49","ui.bridge.update.now":"e9601784","ui.bridge.update.ok":"85e4b82f","ui.bridge.update.shaMismatch":"d7d16526","ui.bridge.update.updating":"64d870e3","ui.chat.context.noProject":"8fb689c1","ui.chat.context.notConnected":"594cf25a","ui.chat.context.refresh":"0815aad4","ui.chat.error.api":"4443e9d1","ui.chat.error.connectionFailed":"21329016","ui.chat.error.network":"d7c168cb","ui.chat.error.noResponse":"4d2fe93c","ui.chat.error.parse":"5f538761","ui.chat.error.timeout":"d6f87ea2","ui.chat.error.unknown":"ce512b43","ui.chat.error.unknownProvider":"f4c01abf","ui.chat.field.apiKey":"4ef4c78c","ui.chat.field.model":"8285e8fa","ui.chat.header.clear":"5df1ac98","ui.chat.header.disconnect":"da84790b","ui.chat.header.settings":"4b058728","ui.chat.input.placeholder":"6a19f5bf","ui.chat.input.send":"f28e14cf","ui.chat.login.apiKeyPlaceholder":"03ad33c7","ui.chat.login.connect":"62854feb","ui.chat.login.connecting":"c4d22f83","ui.chat.login.emptyKey":"d3a24e73","ui.chat.login.failed":"3c283b94","ui.chat.login.keyHint":"969cb36c","ui.chat.login.privacy":"3045552e","ui.chat.login.subtitle":"d3a16144","ui.chat.login.title":"0a4b8c69","ui.chat.login.toggleKey":"36e9906a","ui.chat.message.empty":"2d91e666","ui.chat.message.error":"086ba5d9","ui.chat.message.keyInvalid":"cffa94a1","ui.chat.script.error":"056370c9","ui.chat.script.execute":"26c0a538","ui.chat.script.noReturn":"dfb4d922","ui.chat.script.parseError":"6e6988ef","ui.chat.script.preview":"b5b4f6d1","ui.chat.script.result":"bcb457ab","ui.chat.script.running":"9a768cc2","ui.chat.settings.autoExec":"e53c5db6","ui.chat.settings.changeApiKey":"94e131de","ui.chat.settings.maxTokens":"2143e4f1","ui.chat.settings.save":"4d2d5d68","ui.chat.settings.systemPrompt":"7edd0560","ui.chat.settings.systemPromptPlaceholder":"17aa1baa","ui.chat.settings.temperature":"efd604d5","ui.chat.settings.title":"4b058728","ui.chat.status.error":"f38d9cf1","ui.chat.status.executing":"36bf35e4","ui.chat.status.ready":"0bca3294","ui.chat.status.thinking":"1795b591","ui.chat.suggestion.dissolve":"ff1f900d","ui.chat.suggestion.export":"4e171f6f","ui.chat.suggestion.exportPrompt":"c966a013","ui.chat.suggestion.timeline":"0c377145","ui.chat.tokens":"85577920","ui.chat.welcome.body":"fcbf61ec","ui.chat.welcome.title":"13cb3336","ui.i18n.language":"9a73db9b","ui.i18n.restartNote":"3b4de3f7","ui.i18n.saveFailed":"f37363a2","ui.i18n.saved":"f93e683a"}}; })(typeof self !== 'undefined' ? self : this);
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/* synthetic-idiomas · core/panel.cjs
|
|
2
|
+
*
|
|
3
|
+
* Lado panel CEP (navegador de CEP con Node habilitado o no). Cargar DESPUÉS de i18n-core.cjs y
|
|
4
|
+
* de los diccionarios del producto:
|
|
5
|
+
*
|
|
6
|
+
* <script src="i18n/i18n-core.cjs"></script>
|
|
7
|
+
* <script src="i18n/panel.cjs"></script>
|
|
8
|
+
* <script src="i18n/locales.js"></script> ← generado: SyntheticLocales['<producto>'] = { en:{…}, es:{…}, … }
|
|
9
|
+
*
|
|
10
|
+
* var i18n = SyntheticPanelI18n.init({ product: 'photoshop-mcp', settingsFolder: 'com.synthetic.photoshop-mcp.bridge', cs: cs });
|
|
11
|
+
* i18n.t('ui.settings.title');
|
|
12
|
+
* i18n.apply(document); // traduce [data-i18n], [data-i18n-title], [data-i18n-placeholder], [data-i18n-aria-label]
|
|
13
|
+
* i18n.renderSelector(el, { restartNote: true });
|
|
14
|
+
*
|
|
15
|
+
* Preferencia: <USER_DATA>/<settingsFolder>/settings.json → { "language": "es" } (misma carpeta
|
|
16
|
+
* por usuario que usa Photoshop MCP para license.json). El server MCP del producto lee ese
|
|
17
|
+
* archivo al arrancar (ver core/node.cjs), por eso el cambio de idioma de las tools se aplica
|
|
18
|
+
* al reiniciar el server. La interfaz del panel sí cambia en el momento.
|
|
19
|
+
*
|
|
20
|
+
* Idioma por defecto del panel si nunca se eligió uno: el idioma de la interfaz de la app de
|
|
21
|
+
* Adobe (hostEnvironment.appUILocale), y si no está soportado, inglés. Esto NO se guarda: el
|
|
22
|
+
* server solo cambia de idioma cuando el usuario elige uno explícitamente.
|
|
23
|
+
*/
|
|
24
|
+
(function (root) {
|
|
25
|
+
'use strict';
|
|
26
|
+
var core = root.SyntheticI18n;
|
|
27
|
+
if (!core) throw new Error('Cargá i18n-core.cjs antes que panel.cjs');
|
|
28
|
+
|
|
29
|
+
function nodeRequire(name) {
|
|
30
|
+
try { if (typeof root.cep_node !== 'undefined' && root.cep_node.require) return root.cep_node.require(name); } catch (e) { /* sin Node */ }
|
|
31
|
+
try { if (typeof require === 'function') return require(name); } catch (e2) { /* sin Node */ }
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function fsPathFromUri(p) {
|
|
36
|
+
// cs.getSystemPath() devuelve "file:///C:/..." en algunas versiones de CEP.
|
|
37
|
+
var s = String(p || '');
|
|
38
|
+
if (s.indexOf('file:') === 0) {
|
|
39
|
+
s = decodeURIComponent(s.replace(/^file:[\/\\]*/, ''));
|
|
40
|
+
if (!/^[A-Za-z]:/.test(s)) s = '/' + s;
|
|
41
|
+
}
|
|
42
|
+
return s;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function userDataDir(cs) {
|
|
46
|
+
try {
|
|
47
|
+
var SP = root.SystemPath;
|
|
48
|
+
if (cs && SP && SP.USER_DATA) return fsPathFromUri(cs.getSystemPath(SP.USER_DATA));
|
|
49
|
+
} catch (e) { /* sin CSInterface */ }
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function joinPath(a, b) { return a.replace(/[\\/]+$/, '') + '/' + b; }
|
|
54
|
+
|
|
55
|
+
function readSettings(file) {
|
|
56
|
+
var fs = nodeRequire('fs');
|
|
57
|
+
try {
|
|
58
|
+
if (fs) return JSON.parse(String(fs.readFileSync(file, 'utf8')).replace(/^\uFEFF/, ''));
|
|
59
|
+
if (root.cep && root.cep.fs) { var r = root.cep.fs.readFile(file); if (r.err === 0) return JSON.parse(r.data); }
|
|
60
|
+
} catch (e) { /* no existe o está roto */ }
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function writeSettings(file, patch) {
|
|
65
|
+
var current = readSettings(file) || {};
|
|
66
|
+
for (var k in patch) if (Object.prototype.hasOwnProperty.call(patch, k)) current[k] = patch[k];
|
|
67
|
+
var text = JSON.stringify(current, null, 2);
|
|
68
|
+
var fs = nodeRequire('fs'), path = nodeRequire('path');
|
|
69
|
+
try {
|
|
70
|
+
if (fs && path) {
|
|
71
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
72
|
+
fs.writeFileSync(file, text, 'utf8');
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
if (root.cep && root.cep.fs) {
|
|
76
|
+
root.cep.fs.makedir(file.replace(/[\\/][^\\/]+$/, ''));
|
|
77
|
+
return root.cep.fs.writeFile(file, text).err === 0;
|
|
78
|
+
}
|
|
79
|
+
} catch (e) { /* sin permisos */ }
|
|
80
|
+
try { root.localStorage.setItem('synthetic.language', patch.language); } catch (e2) { /* nada */ }
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function hostLanguage(cs) {
|
|
85
|
+
var env = null;
|
|
86
|
+
try { env = cs.hostEnvironment || (cs.getHostEnvironment && cs.getHostEnvironment()); } catch (e) { env = null; }
|
|
87
|
+
try { if (typeof env === 'string') env = JSON.parse(env); } catch (e2) { env = null; }
|
|
88
|
+
return env ? core.normalizeLanguage(env.appUILocale) : null;
|
|
89
|
+
}
|
|
90
|
+
var selectorSeq = 0;
|
|
91
|
+
|
|
92
|
+
function init(opts) {
|
|
93
|
+
opts = opts || {};
|
|
94
|
+
var cs = opts.cs || null;
|
|
95
|
+
var all = (root.SyntheticLocales && root.SyntheticLocales[opts.product]) || {};
|
|
96
|
+
var locks = (root.SyntheticLocaleHashes && root.SyntheticLocaleHashes[opts.product]) || {};
|
|
97
|
+
var base = userDataDir(cs);
|
|
98
|
+
var file = base && opts.settingsFolder ? joinPath(base, opts.settingsFolder + '/settings.json') : null;
|
|
99
|
+
var saved = file ? readSettings(file) : null;
|
|
100
|
+
var stored = null;
|
|
101
|
+
try { stored = root.localStorage.getItem('synthetic.language'); } catch (e) { /* nada */ }
|
|
102
|
+
var chosen = core.normalizeLanguage(saved && saved.language) || core.normalizeLanguage(stored);
|
|
103
|
+
var lang = chosen || hostLanguage(cs) || core.SOURCE;
|
|
104
|
+
var api = { settingsFile: file, explicit: !!chosen, listeners: [] };
|
|
105
|
+
|
|
106
|
+
function build(code) {
|
|
107
|
+
var i = core.createI18n({ locales: all, hashes: locks, language: code });
|
|
108
|
+
api.language = i.language;
|
|
109
|
+
api.t = i.t;
|
|
110
|
+
api.tn = i.tn;
|
|
111
|
+
try { root.document.documentElement.setAttribute('lang', i.language); } catch (e) { /* sin DOM */ }
|
|
112
|
+
}
|
|
113
|
+
build(lang);
|
|
114
|
+
|
|
115
|
+
api.apply = function (scope) {
|
|
116
|
+
scope = scope || root.document;
|
|
117
|
+
var attrs = [['data-i18n', null], ['data-i18n-title', 'title'], ['data-i18n-placeholder', 'placeholder'], ['data-i18n-aria-label', 'aria-label']];
|
|
118
|
+
attrs.forEach(function (pair) {
|
|
119
|
+
var nodes = scope.querySelectorAll('[' + pair[0] + ']');
|
|
120
|
+
for (var n = 0; n < nodes.length; n++) {
|
|
121
|
+
var el = nodes[n], key = el.getAttribute(pair[0]);
|
|
122
|
+
if (!pair[1]) el.textContent = api.t(key, null, el.textContent);
|
|
123
|
+
else el.setAttribute(pair[1], api.t(key, null, el.getAttribute(pair[1])));
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
// Cambia el idioma: guarda la preferencia (para el panel y el server) y retraduce la UI.
|
|
129
|
+
api.setLanguage = function (code) {
|
|
130
|
+
var norm = core.normalizeLanguage(code) || core.SOURCE;
|
|
131
|
+
var saved2 = file ? writeSettings(file, { language: norm }) : false;
|
|
132
|
+
if (!saved2) { try { root.localStorage.setItem('synthetic.language', norm); } catch (e) { /* nada */ } }
|
|
133
|
+
api.explicit = true;
|
|
134
|
+
build(norm);
|
|
135
|
+
api.apply();
|
|
136
|
+
api.listeners.forEach(function (fn) { try { fn(norm, saved2); } catch (e) { /* listener roto */ } });
|
|
137
|
+
return saved2;
|
|
138
|
+
};
|
|
139
|
+
api.onChange = function (fn) { api.listeners.push(fn); };
|
|
140
|
+
|
|
141
|
+
// <select> con los idiomas (nombres en su propio idioma) + nota de reinicio opcional.
|
|
142
|
+
api.renderSelector = function (container, o) {
|
|
143
|
+
o = o || {};
|
|
144
|
+
var doc = root.document;
|
|
145
|
+
var wrap = doc.createElement('div');
|
|
146
|
+
wrap.className = 'synth-lang';
|
|
147
|
+
var label = doc.createElement('label');
|
|
148
|
+
label.className = 'synth-lang-label';
|
|
149
|
+
label.setAttribute('data-i18n', 'ui.i18n.language');
|
|
150
|
+
label.textContent = api.t('ui.i18n.language', null, 'Language');
|
|
151
|
+
var select = doc.createElement('select');
|
|
152
|
+
select.className = 'synth-lang-select';
|
|
153
|
+
core.LANGUAGES.forEach(function (l) {
|
|
154
|
+
var opt = doc.createElement('option');
|
|
155
|
+
opt.value = l.code; opt.textContent = l.name;
|
|
156
|
+
if (l.code === api.language) opt.selected = true;
|
|
157
|
+
select.appendChild(opt);
|
|
158
|
+
});
|
|
159
|
+
label.htmlFor = select.id = 'synthLangSelect' + (++selectorSeq);
|
|
160
|
+
wrap.appendChild(label); wrap.appendChild(select);
|
|
161
|
+
var note = null;
|
|
162
|
+
if (o.restartNote) {
|
|
163
|
+
note = doc.createElement('div');
|
|
164
|
+
note.className = 'synth-lang-note';
|
|
165
|
+
note.setAttribute('data-i18n', 'ui.i18n.restartNote');
|
|
166
|
+
note.textContent = api.t('ui.i18n.restartNote', null, 'The AI tool descriptions switch language after restarting the MCP server.');
|
|
167
|
+
wrap.appendChild(note);
|
|
168
|
+
}
|
|
169
|
+
select.addEventListener('change', function () { api.setLanguage(select.value); });
|
|
170
|
+
container.appendChild(wrap);
|
|
171
|
+
return select;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
return api;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
root.SyntheticPanelI18n = { init: init, _fsPathFromUri: fsPathFromUri };
|
|
178
|
+
})(typeof self !== 'undefined' ? self : this);
|