diff --git a/messages/es-ES.json b/messages/es-ES.json
index fe684502a..b62accc21 100644
--- a/messages/es-ES.json
+++ b/messages/es-ES.json
@@ -43,6 +43,8 @@
"inviteLoginUser": "Por favor, asegúrese de que ha iniciado sesión como el usuario correcto.",
"inviteErrorNoUser": "Lo sentimos, pero parece que la invitación a la que intentas acceder no es para un usuario que existe.",
"inviteCreateUser": "Por favor, cree una cuenta primero.",
+ "inviteErrorOidcNotAllowed": "Las invitaciones solo pueden ser aceptadas por cuentas internas. Cierra sesión e inicia sesión con tu contraseña para este correo electrónico.",
+ "inviteLoginInternalOnly": "Las invitaciones requieren una cuenta interna con una contraseña. Crea una cuenta o inicia sesión con tu contraseña.",
"goHome": "Ir a casa",
"inviteLogInOtherUser": "Iniciar sesión como un usuario diferente",
"createAnAccount": "Crear una cuenta",
@@ -286,7 +288,21 @@
"noCountryFound": "Ningún país encontrado.",
"siteSelectionDescription": "Este sitio proporcionará conectividad al objetivo.",
"resourceType": "Tipo de recurso",
- "resourceTypeDescription": "Esto controla el protocolo del recurso y cómo se renderizará en el navegador. Esto no se puede cambiar más tarde.",
+ "resourceTypeDescription": "Esto controla el protocolo del recurso y no se puede cambiar más tarde.",
+ "resourceTypeSearch": "Buscar tipos de recursos...",
+ "resourceTypeNotFound": "No se encontró ningún tipo de recurso",
+ "resourceTypeHttpDescription": "Proxy de tráfico web a través de HTTPS usando un nombre de dominio",
+ "resourceTypeInferenceDescription": "Dirige las solicitudes de IA a través de proveedores adjuntos",
+ "resourceTypeSshDescription": "Accede a un servidor SSH desde el navegador",
+ "resourceTypeRdpDescription": "Accede a un escritorio remoto desde el navegador",
+ "resourceTypeVncDescription": "Accede a un escritorio VNC desde el navegador",
+ "resourceTypeTcpDescription": "Proxy de tráfico TCP crudo usando un número de puerto",
+ "resourceTypeUdpDescription": "Proxy de tráfico UDP crudo usando un número de puerto",
+ "privateResourceTypeDescription": "Esto controla cómo los clientes acceden al recurso. No se puede cambiar más tarde.",
+ "privateResourceTypeHostDescription": "Expone un host único en la red del sitio a los clientes conectados",
+ "privateResourceTypeCidrDescription": "Expón un rango CIDR en la red del sitio para los clientes conectados",
+ "privateResourceTypeHttpDescription": "Accede a un servicio HTTP o HTTPS a través de un dominio",
+ "privateResourceTypeSshDescription": "Accede a un servidor SSH desde clientes conectados",
"resourceDomainDescription": "El recurso se servirá en este nombre de dominio completamente calificado.",
"resourceHTTPSSettings": "Configuración HTTPS",
"resourceHTTPSSettingsDescription": "Configurar cómo se accederá al recurso a través de HTTPS",
@@ -855,12 +871,16 @@
"authMethodsSave": "Guardar ajustes",
"policyAuthStackTitle": "Autenticación",
"policyAuthStackDescription": "Controla qué métodos de autenticación son necesarios para acceder a este recurso",
+ "policyAuthInferenceStackDescription": "Elige qué usuarios y roles pueden autenticarse en este gateway de IA",
"policyAuthOrLogicTitle": "Múltiples métodos de autenticación activos",
"policyAuthOrLogicBanner": "Los visitantes pueden autenticarse utilizando cualquier método activo a continuación. No necesitan completar todos ellos.",
"policyAuthMethodActive": "Activo",
"policyAuthMethodOff": "Apagado",
"policyAuthSsoTitle": "SSO de Plataforma",
"policyAuthSsoDescription": "Requiere iniciar sesión a través del proveedor de identidad de tu organización",
+ "policyAuthInferenceIdentityKeySignInUrl": "URL de inicio de sesión",
+ "policyAuthInferenceIdentityKeyHelpNoUrl": "Cada usuario ya tiene una clave API de identidad, por lo que solo necesitas crear claves API virtuales para clientes no usuarios o acceso compartido. Los usuarios pueden recuperar su clave iniciando sesión con su proveedor de identidad en la URL de este recurso, donde se mostrará después del inicio de sesión.",
+ "policyAuthInferenceIdentityKeyHelp": "Cada usuario ya tiene una clave API de identidad, por lo que solo necesitas crear claves API virtuales para clientes no usuarios o acceso compartido. Los usuarios recuperan su clave aquí después de iniciar sesión con su proveedor de identidad.",
"policyAuthSsoSummary": "{idp} · {users} usuarios, {roles} roles",
"policyAuthSsoDefaultIdp": "Proveedor por defecto",
"policyAuthAddDefaultIdentityProvider": "Añadir Proveedor de Identidad Predeterminado",
@@ -1079,6 +1099,8 @@
"accessRoleErrorNewRequired": "Se requiere un nuevo rol",
"accessRoleErrorRemove": "Error al eliminar el rol",
"accessRoleErrorRemoveDescription": "Ocurrió un error mientras se eliminaba el rol.",
+ "accessRoleInferenceBudget": "Presupuesto de IA",
+ "accessRoleInferenceBudgetDescription": "Configura cómo los miembros de este rol restringen el uso de IA según los límites de gasto o de tokens",
"accessRoleName": "Nombre del Rol",
"accessRoleQuestionRemove": "Estás a punto de eliminar el rol `{name}`. No puedes deshacer esta acción.",
"accessRoleRemove": "Quitar rol",
@@ -1424,6 +1446,28 @@
"actionDeleteSite": "Eliminar sitio",
"actionGetSite": "Obtener sitio",
"actionListSites": "Listar sitios",
+ "actionCreateAiProvider": "Crear Proveedor de IA",
+ "actionDeleteAiProvider": "Eliminar Proveedor de IA",
+ "actionGetAiProvider": "Obtener Proveedor de IA",
+ "actionListAiProviders": "Lista de Proveedores de IA",
+ "actionUpdateAiProvider": "Actualizar Proveedor de IA",
+ "actionCreateAiModel": "Crear Modelo de IA",
+ "actionDeleteAiModel": "Eliminar Modelo de IA",
+ "actionGetAiModel": "Obtener Modelo de IA",
+ "actionListAiModels": "Lista de Modelos de IA",
+ "actionUpdateAiModel": "Actualizar Modelo de IA",
+ "actionCreateAiBudget": "Crear Presupuesto de IA",
+ "actionDeleteAiBudget": "Eliminar Presupuesto de IA",
+ "actionGetAiBudget": "Obtener Presupuesto de IA",
+ "actionListAiBudgets": "Lista de Presupuestos de IA",
+ "actionUpdateAiBudget": "Actualizar Presupuesto de IA",
+ "actionListResourceAiModels": "Lista de Modelos de IA de Recursos",
+ "actionSetResourceAiModels": "Establecer Modelos de IA de Recursos",
+ "actionCreateVirtualApiKey": "Crear Clave API Virtual",
+ "actionDeleteVirtualApiKey": "Eliminar Clave API Virtual",
+ "actionGetVirtualApiKey": "Obtener Clave API Virtual",
+ "actionListVirtualApiKeys": "Lista de Claves API Virtuales",
+ "actionUpdateVirtualApiKey": "Actualizar Clave API Virtual",
"actionApplyBlueprint": "Aplicar plano",
"actionListBlueprints": "Listar blueprints",
"actionGetBlueprint": "Obtener blueprint",
@@ -1449,8 +1493,11 @@
"actionSetResourcePincode": "Establecer Pincode del recurso",
"actionSetResourceEmailWhitelist": "Establecer lista blanca de correo de recursos",
"actionGetResourceEmailWhitelist": "Obtener correo electrónico de recursos",
+ "actionListResourcePolicies": "Lista de Políticas de Recursos",
+ "actionCreateResourcePolicy": "Crear Política de Recursos",
"actionGetResourcePolicy": "Obtener política de recursos",
"actionUpdateResourcePolicy": "Actualizar política de recursos",
+ "actionDeleteResourcePolicy": "Eliminar Política de Recursos",
"actionSetResourcePolicyUsers": "Definir política de recursos para usuarios",
"actionSetResourcePolicyRoles": "Definir roles de política de recursos",
"actionSetResourcePolicyPassword": "Definir contraseña de política de recursos",
@@ -1622,6 +1669,404 @@
"sidebarInvitations": "Invitaciones",
"sidebarRoles": "Roles",
"sidebarShareableLinks": "Enlaces Compartibles",
+ "sidebarAiGateway": "Gateway de IA",
+ "sidebarAiProviders": "Proveedores",
+ "commandAiProviders": "Proveedores de IA",
+ "sidebarVirtualApiKeys": "Claves API Virtuales",
+ "sidebarMyApiKeys": "Tus Claves API",
+ "sidebarAccount": "Lanzador",
+ "commandVirtualApiKeys": "Claves API Virtuales",
+ "virtualApiKeysTitle": "Administrar Claves API Virtuales",
+ "virtualApiKeysDescription": "Crea y gestiona claves API manuales para el acceso al Gateway público de IA",
+ "virtualApiKeysTabIdentity": "Claves de Identidad",
+ "virtualApiKeysTabVirtual": "Claves Virtuales",
+ "virtualApiKeysIdentitySplashTitle": "Claves de Identidad para Cada Usuario",
+ "virtualApiKeysIdentitySplashDescription": "Cada usuario ya tiene una clave de identidad Pangolin para esta organización. Es única para su cuenta y los autentica en gateways de IA a los que pueden acceder.",
+ "virtualApiKeysIdentitySplashExample": "Ejemplo",
+ "virtualApiKeysIdentitySplashRetrieveTitle": "Cómo los Usuarios Obtienen su Clave",
+ "virtualApiKeysIdentitySplashRetrieveResource": "Visita una URL de gateway público de IA en el navegador e inicia sesión con su cuenta.",
+ "virtualApiKeysIdentitySplashRetrievePage": "O ve a mientras estás conectado.",
+ "virtualApiKeysIdentitySplashManual": "Puedes crear claves API virtuales adicionales en la pestaña de Claves Virtuales. Esas claves pueden estar limitadas a gateways públicos de IA específicos y opcionalmente asociadas a un usuario. Crear una clave concede inmediatamente acceso a los gateways públicos de IA seleccionados.",
+ "virtualApiKeysIdentitySplashGoToVirtual": "Crear Manualmente una Clave",
+ "virtualApiKeysEmailIdentity": "Claves de Identidad por Correo Electrónico",
+ "virtualApiKeysEmailIdentityDescription": "Envía a cada usuario o rol seleccionado su clave de identidad Pangolin.",
+ "virtualApiKeysEmailIdentitySendAll": "Enviar a todos los usuarios",
+ "virtualApiKeysEmailIdentitySendAllDescription": "Enviar correo electrónico a cada miembro de la organización que tenga un correo electrónico de cuenta.",
+ "virtualApiKeysEmailIdentitySelectUsers": "Usuarios",
+ "virtualApiKeysEmailIdentitySelectRoles": "Roles",
+ "virtualApiKeysEmailIdentitySubmit": "Enviar Correos Electrónicos",
+ "virtualApiKeysEmailIdentitySuccess": "Claves de identidad enviadas por correo electrónico",
+ "virtualApiKeysEmailIdentitySuccessDescription": "Se enviaron {sent} correos electrónicos.",
+ "virtualApiKeysEmailIdentitySkipped": "{skipped} usuarios se omitieron porque no tienen una dirección de correo electrónico.",
+ "virtualApiKeysEmailIdentityRecipientsRequired": "Selecciona al menos un usuario o rol, o envía a todos los usuarios.",
+ "virtualApiKeysEmailIdentityError": "Error al enviar claves de identidad",
+ "virtualApiKeysEmailIdentityErrorDescription": "No se pudieron enviar por correo electrónico las claves de identidad",
+ "virtualApiKeysBannerTitle": "Claves de Identidad para Cada Usuario",
+ "virtualApiKeysBannerDescription": "Cada usuario ya tiene una clave de identidad disponible en {keysUrl}. También puedes generar manualmente claves aquí que conceden acceso directo a gateways públicos de IA.",
+ "virtualApiKeysBannerButtonText": "Ver Claves de Identidad",
+ "virtualApiKeys": "Claves API Virtuales",
+ "virtualApiKeysSearch": "Buscar claves...",
+ "virtualApiKeysCreate": "Crear Clave API Virtual",
+ "virtualApiKeysCreateDescription": "Genera una clave manual que pueda llamar a gateways públicos de IA en esta organización",
+ "virtualApiKeysCreateButton": "Crear Clave",
+ "virtualApiKeysEmpty": "Aún no hay claves API virtuales",
+ "virtualApiKeysName": "Nombre",
+ "virtualApiKeysDescriptionOptional": "Descripción (opcional)",
+ "virtualApiKeysAssociateUserOptional": "Asociar Usuario (opcional)",
+ "virtualApiKeysAssociateUserDescription": "Asocia esta clave con un usuario para rastrear el uso. Una vez creada, esta clave concede inmediatamente acceso a los gateways públicos de IA seleccionados. No necesitas asociar un usuario manualmente al recurso. La clave también aparecerá en el perfil del usuario.",
+ "virtualApiKeysAllResources": "Todos los gateways públicos de IA",
+ "virtualApiKeysAllResourcesDescription": "Permitir que esta clave acceda a cada gateway público de IA en la organización",
+ "virtualApiKeysSelectResources": "Gateways Públicos de IA",
+ "virtualApiKeysSelectResourcesPlaceholder": "Seleccionar recursos",
+ "virtualApiKeysSelectResourcesDescription": "Elige a qué gateways públicos de IA puede acceder esta clave",
+ "virtualApiKeysNoResources": "Sin recursos",
+ "virtualApiKeysSecret": "Clave",
+ "virtualApiKeysCopyKey": "Copia esta clave. Puedes verla nuevamente más tarde desde la tabla o al editar.",
+ "virtualApiKeysViewSecret": "Ver Secreto",
+ "virtualApiKeysViewSecretTitle": "Secreto de la Clave API Virtual",
+ "virtualApiKeysViewSecretDescription": "Este secreto concede acceso a los gateways públicos de IA asignados a esta clave",
+ "virtualApiKeysEdit": "Editar Clave API Virtual",
+ "virtualApiKeysEditDescription": "Actualiza el usuario asociado y el acceso al gateway público de IA para esta clave",
+ "virtualApiKeysSaveButton": "Guardar Cambios",
+ "virtualApiKeysSelectResourcesRequired": "Selecciona al menos un gateway público de IA, o habilita todos los gateways públicos de IA",
+ "virtualApiKeysUpdated": "Clave API virtual actualizada",
+ "virtualApiKeysUpdatedDescription": "La clave API virtual ha sido actualizada",
+ "virtualApiKeysErrorUpdate": "Error al actualizar la clave API virtual",
+ "virtualApiKeysErrorUpdateDescription": "Error al actualizar clave API virtual",
+ "virtualApiKeysErrorCreate": "Error al crear clave API virtual",
+ "virtualApiKeysErrorCreateDescription": "Error al crear clave API virtual",
+ "virtualApiKeysErrorDelete": "Error al eliminar clave API virtual",
+ "virtualApiKeysErrorDeleteMessage": "Error al eliminar clave API virtual",
+ "virtualApiKeysDeleted": "Clave API virtual eliminada",
+ "virtualApiKeysDeletedDescription": "La clave API virtual ha sido eliminada",
+ "virtualApiKeysDelete": "Eliminar Clave API Virtual",
+ "virtualApiKeysDeleteConfirm": "Eliminar Clave",
+ "virtualApiKeysQuestionRemove": "¿Está seguro de que desea eliminar esta clave API virtual?",
+ "virtualApiKeysMessageRemove": "Los clientes que usen esta clave perderán acceso inmediatamente.",
+ "virtualApiKeysErrorFetchSecret": "Error al cargar el secreto",
+ "virtualApiKeysErrorFetchSecretDescription": "Error al cargar el secreto de la clave API virtual",
+ "virtualApiKeysFilterUnassigned": "No asignado",
+ "virtualApiKeysInferenceBudget": "Presupuesto",
+ "virtualApiKeysInferenceBudgetDescription": "Configura cómo esta clave restringe el uso de IA según los límites de gasto o de tokens",
+ "virtualApiKeysEmailOnGenerate": "Correo electrónico al generar",
+ "virtualApiKeysEmailThisKey": "Envía este correo electrónico",
+ "virtualApiKeysEmailOnGenerateDescription": "Envía la clave al usuario asociado y direcciones adicionales después de que se cree",
+ "virtualApiKeysEmailThisKeyDescription": "Envía la clave actual al usuario asociado y direcciones adicionales",
+ "virtualApiKeysEmailSmtpRequired": "El correo electrónico no está configurado en este servidor",
+ "virtualApiKeysEmailSmtpRequiredDescription": "Configure SMTP para enviar claves API virtuales por correo electrónico.",
+ "virtualApiKeysEmailSendToUser": "Enviar al usuario asociado",
+ "virtualApiKeysEmailSendToUserDescription": "Envía la clave al correo electrónico de la cuenta del usuario asociado",
+ "virtualApiKeysEmailSendToUserDisabled": "Asocia un usuario para enviar la clave a ese usuario",
+ "virtualApiKeysEmailAdditional": "Correos electrónicos adicionales",
+ "virtualApiKeysEmailAdditionalPlaceholder": "Agrega un correo electrónico y presiona Enter",
+ "virtualApiKeysEmailRecipientsRequired": "Selecciona el usuario asociado o agrega al menos una dirección de correo electrónico",
+ "myVirtualApiKeysTitle": "Tus Claves API",
+ "myVirtualApiKeysDescription": "Ve tu clave de identidad y cualquier clave API virtuales atribuidas a ti en esta organización",
+ "myVirtualApiKeysResourceTitle": "Tus Claves API para {resourceName}",
+ "myVirtualApiKeysResourceDescription": "Ve tu clave de identidad y claves API virtuales atribuidas a ti que pueden acceder a {resourceName}",
+ "myVirtualApiKeysIdentityTitle": "Clave de Identidad",
+ "myVirtualApiKeysIdentityHeadline": "Tu Clave API Personal",
+ "myVirtualApiKeysIdentityDescription": "Tu clave personal para esta organización. Es única para tu cuenta y se utiliza para identificarte cuando llamas a recursos del Gateway de IA.",
+ "myVirtualApiKeysIdentityResourceHeadline": "Tu Clave API Personal para {resourceName}",
+ "myVirtualApiKeysIdentityResourceDescription": "Tu clave personal para esta organización. Úsala para llamar a {resourceName}.",
+ "myVirtualApiKeysManualTitle": "Claves Atribuidas",
+ "myVirtualApiKeysManualDescription": "Claves API virtuales manuales que un administrador ha asociado con tu cuenta",
+ "myVirtualApiKeysManualResourceDescription": "Claves API virtuales manuales asociadas a tu cuenta que pueden acceder a {resourceName}",
+ "myVirtualApiKeysManualEmpty": "Aún no hay claves atribuidas",
+ "myVirtualApiKeysKindUser": "Identidad",
+ "myVirtualApiKeysKindManual": "Manual",
+ "myVirtualApiKeysUnnamed": "Clave sin nombre",
+ "myVirtualApiKeysRevealSecret": "Revelar Secreto",
+ "myVirtualApiKeysViewSecretDescription": "Este secreto te autentica en los recursos del Gateway de IA",
+ "aiProvidersTitle": "Proveedores de IA",
+ "aiProvidersDescription": "Conecta proveedores de modelos para cargas de trabajo de IA en esta organización",
+ "aiProvidersBannerTitle": "Conecta Proveedores de Modelos",
+ "aiProvidersBannerDescription": "Los proveedores son los backends de modelo que Pangolin usa para cargas de trabajo de IA. Conecta OpenAI, Anthropic y otros proveedores aquí, luego adjúntalos a gateways públicos de IA para que los usuarios puedan llamar a modelos con acceso consciente de identidad, presupuestos y registros.",
+ "aiProvidersAdd": "Agregar Proveedor",
+ "aiProvidersSearch": "Buscar proveedores...",
+ "aiProvidersEmpty": "Aún no hay proveedores de IA",
+ "aiProviderCreate": "Crear Proveedor de IA",
+ "aiProviderCreateDescription": "Agrega un proveedor de modelos para esta organización",
+ "aiProviderSeeAll": "Ver Todos los Proveedores",
+ "aiProviderSetting": "Ajustes del Proveedor para {providerName}",
+ "aiProviderSettingDescription": "Configura este proveedor de IA",
+ "aiProviderGeneral": "General",
+ "aiProviderGeneralDescription": "Configuraciones básicas para este proveedor",
+ "aiProviderConfiguration": "Configuración",
+ "aiProviderConfigurationDescription": "Enrutamiento de red y autenticación para este proveedor",
+ "aiProviderNetworkSettings": "Configuraciones de Red",
+ "aiProviderNetworkSettingsDescription": "Elige cómo llega el tráfico a este proveedor",
+ "aiProviderAuthSettings": "Autenticación",
+ "aiProviderAuthSettingsDescription": "Configura cómo este proveedor autentica solicitudes a su URL upstream",
+ "aiProviderBudgetSettings": "Presupuesto",
+ "aiProviderBudgetSettingsDescription": "Configura cómo este proveedor restringe el uso basado en los límites de gasto o de tokens",
+ "aiBudgetAdd": "Agregar Presupuesto",
+ "aiBudgetEmpty": "Aún no hay presupuestos configurados. Haz clic en Agregar Presupuesto para establecer un límite de gasto o de tokens.",
+ "aiBudgetUnit": "Tipo de Gasto",
+ "aiBudgetPeriod": "Período de Restablecimiento",
+ "aiBudgetAmount": "Gasto Máximo",
+ "aiBudgetAmountPlaceholder": "Gasto máximo",
+ "aiBudgetPeriodHourly": "Por hora",
+ "aiBudgetPeriodDaily": "Diario",
+ "aiBudgetPeriodWeekly": "Semanal",
+ "aiBudgetPeriodMonthly": "Mensual",
+ "aiBudgetPeriodYearly": "Anual",
+ "aiBudgetPeriodLifetime": "De por vida",
+ "aiBudgetUnitUsd": "USD",
+ "aiBudgetUnitTokens": "Tokens",
+ "aiBudgetConflictError": "Ya existe un presupuesto para este período de restablecimiento y tipo de gasto",
+ "aiBudgetInvalidAmountError": "Ingresa un gasto máximo mayor a 0",
+ "aiBudgetUpdated": "Presupuestos actualizados",
+ "aiBudgetErrorSave": "Error al actualizar presupuestos",
+ "aiProviderType": "Tipo de Proveedor",
+ "aiProviderTypeSearch": "Buscar proveedores...",
+ "aiProviderTypeNotFound": "No se encontró tipo de proveedor",
+ "aiProviderTypeOpenai": "OpenAI",
+ "aiProviderTypeAnthropic": "Anthropic",
+ "aiProviderTypeGoogleGemini": "Google Gemini",
+ "aiProviderTypeVertexAi": "Vertex AI",
+ "aiProviderTypeBedrock": "Amazon Bedrock",
+ "aiProviderTypeMicrosoftFoundry": "Microsoft Foundry",
+ "aiProviderTypeOpenRouter": "OpenRouter",
+ "aiProviderTypeVercelAiGateway": "Vercel AI Gateway",
+ "aiProviderTypeCustom": "Personalizado",
+ "aiProviderTypeOpenaiDescription": "API de OpenAI",
+ "aiProviderTypeAnthropicDescription": "API de Anthropic",
+ "aiProviderTypeGoogleGeminiDescription": "API de Google Gemini",
+ "aiProviderTypeVertexAiDescription": "API de Vertex AI de Google",
+ "aiProviderTypeBedrockDescription": "API de Amazon Bedrock Runtime",
+ "aiProviderTypeMicrosoftFoundryDescription": "API de Microsoft Foundry",
+ "aiProviderTypeOpenRouterDescription": "API de OpenRouter",
+ "aiProviderTypeVercelAiGatewayDescription": "API de Vercel AI Gateway",
+ "aiProviderTypeCustomDescription": "Lleve su propio endpoint o enrutamiento a través de objetivos del sitio",
+ "aiProviderUpstreamUrl": "URL de upstream",
+ "aiProviderUpstreamUrlDescription": "URL base para la API del proveedor",
+ "aiProviderUpstreamUrlOptionalDescription": "Dejar en blanco para usar el URL de upstream predeterminado para este proveedor",
+ "aiProviderEffectiveUpstreamUrl": "URL de upstream efectivo",
+ "aiProviderApiKey": "Clave API",
+ "aiProviderApiKeyDescription": "Clave API usada para autenticar solicitudes a este proveedor",
+ "aiProviderCustomHeadersDescription": "Cabeceras enviadas en cada solicitud a este proveedor. Nueva línea separada: Nombre-Cabecera: valor",
+ "aiProviderApiKeyLastChars": "Clave API",
+ "aiProviderAuthType": "Tipo de autenticación",
+ "aiProviderAuthTypeSearch": "Buscar tipos de autenticación...",
+ "aiProviderAuthTypeNotFound": "No se encontró el tipo de autenticación",
+ "aiProviderAuthTypeBearer": "Portador",
+ "aiProviderAuthTypeBearerDescription": "Autorización: clave portador. Usado por OpenAI y la mayoría de los proveedores",
+ "aiProviderAuthTypeXApiKey": "x-api-key",
+ "aiProviderAuthTypeXApiKeyDescription": "Encabezado x-api-key. Usado por Anthropic",
+ "aiProviderAuthTypeXGoogApiKey": "x-goog-api-key",
+ "aiProviderAuthTypeXGoogApiKeyDescription": "Encabezado x-goog-api-key. Usado por Google Gemini",
+ "aiProviderAuthTypeHec": "Splunk HEC",
+ "aiProviderAuthTypeHecDescription": "Autorización: Clave Splunk. Usado por el recolector de eventos HTTP Splunk",
+ "aiProviderAuthTypeCfAigAuthorization": "Gateway de IA de Cloudflare",
+ "aiProviderAuthTypeCfAigAuthorizationDescription": "cf-aig-authorization: Clave Bearer. Usado por el Gateway de IA de Cloudflare",
+ "aiProviderAuthTypeNone": "Sin autenticación",
+ "aiProviderAuthTypePassthrough": "Paso a través",
+ "aiProviderAuthTypeDescription": "Cómo autentica solicitudes la API upstream",
+ "aiProviderAuthTypePassthroughDescription": "Reenviar las cabeceras de clave API del solicitante al upstream",
+ "aiProviderAuthTypeNoneDescription": "No enviar cabeceras de autenticación al upstream",
+ "aiProviderRoutingMode": "Modo de enrutamiento",
+ "aiProviderRoutingModeDescription": "Enviar tráfico a una URL de upstream o a objetivos HTTP en sus sitios",
+ "aiProviderRoutingModeUrl": "URL de upstream",
+ "aiProviderRoutingModeUrlDescription": "Llamar a una URL base de API pública o privada",
+ "aiProviderRoutingModeTarget": "Objetivos de sitio",
+ "aiProviderRoutingModeTargetDescription": "Ruta a través de objetivos en sus sitios",
+ "aiProviderRoutingModeTargetNote": "Después de crear este proveedor, configure objetivos de sitio en la pestaña de Configuración de Red.",
+ "aiProviderTargetNoOne": "Este proveedor no tiene objetivos. Agregue un objetivo para enrutar solicitudes a través de sus sitios.",
+ "aiProviderSkipTlsVerification": "Omitir verificación de TLS",
+ "aiProviderSkipTlsVerificationDescription": "Deshabilitar la verificación del certificado TLS para la conexión de upstream",
+ "aiProviderBudget": "Presupuesto",
+ "aiProviderBudgetDescription": "Presupuesto de gastos opcional o de token para este proveedor",
+ "aiProviderBudgetAmount": "Cantidad de presupuesto",
+ "aiProviderBudgetUnit": "Unidad de presupuesto",
+ "aiProviderBudgetUnitUsd": "USD",
+ "aiProviderBudgetUnitTokens": "Tokens",
+ "aiProviderEnabled": "Activado",
+ "aiProviderEnabledDescription": "Desactivar completamente este proveedor en todos los recursos",
+ "aiProviderErrorCreate": "Error al crear el proveedor de IA",
+ "aiProviderErrorUpdate": "Error al actualizar el proveedor de IA",
+ "aiProviderErrorDelete": "Error al eliminar el proveedor de IA",
+ "aiProviderErrorLoad": "Error al cargar el proveedor de IA",
+ "aiProviderErrorUpstreamUrlInvalid": "Introduce una URL de upstream válida",
+ "aiProviderErrorUpstreamUrlRequired": "Se requiere URL de upstream para este proveedor",
+ "aiProviderErrorAuthTypeRequired": "Se requiere tipo de autenticación",
+ "aiProviderErrorApiKeyRequired": "Se requiere clave API",
+ "aiProviderErrorRoutingModeTarget": "El enrutamiento de objetivos del sitio solo está disponible para proveedores personalizados",
+ "aiProviderErrorCapabilitiesRequired": "Seleccione al menos una capacidad de API",
+ "aiProviderCapabilities": "Capacidades de la API",
+ "aiProviderCapabilitiesDescription": "Seleccione qué formatos de API puede manejar este proveedor. Los proveedores conocidos comienzan con valores predeterminados recomendados.",
+ "aiProviderCapabilitiesCustomDescription": "Seleccione qué formatos de API puede manejar este proveedor personalizado",
+ "aiProviderCapabilitiesSelect": "Seleccionar capacidades",
+ "aiProviderCapabilitiesEmpty": "No se encontraron capacidades",
+ "aiProviderCapabilitiesSearch": "Buscar capacidades...",
+ "aiCapabilityOpenaiChat": "OpenAI Chat Completions",
+ "aiCapabilityOpenaiChatDescription": "Admite /v1/chat/completions",
+ "aiCapabilityOpenaiResponses": "Respuestas de OpenAI",
+ "aiCapabilityOpenaiResponsesDescription": "Admite /v1/responses",
+ "aiCapabilityAnthropicMessages": "Mensajes Antropicos",
+ "aiCapabilityAnthropicMessagesDescription": "Admite /v1/messages",
+ "aiCapabilityGeminiGenerateContent": "Generar contenido Gemini",
+ "aiCapabilityGeminiGenerateContentDescription": "Admite la API directa de Gemini",
+ "aiCapabilityBedrockModelInvoke": "Invocar modelo de Bedrock",
+ "aiCapabilityBedrockModelInvokeDescription": "Admite Amazon Bedrock InvokeModel",
+ "aiCapabilityGoogleGenerateContent": "Generar contenido con Vertex",
+ "aiCapabilityGoogleGenerateContentDescription": "Admite el formato Gemini de Vertex AI",
+ "aiCapabilityGoogleRawPredict": "Predicción directa de Vertex",
+ "aiCapabilityGoogleRawPredictDescription": "Admite Vertex AI rawPredict para modelos Antropic",
+ "aiCapabilityBedrockConverse": "Convoque en Bedrock",
+ "aiCapabilityBedrockConverseDescription": "Admite la API de Amazon Bedrock Converse",
+ "aiProviderCreated": "Proveedor de IA creado",
+ "aiProviderUpdated": "Proveedor de IA actualizado",
+ "aiProviderDeleted": "Proveedor de IA eliminado",
+ "aiProviderDelete": "Eliminar proveedor",
+ "aiProviderDeleteConfirm": "Eliminar proveedor",
+ "aiProviderQuestionRemove": "¿Está seguro de que desea eliminar este proveedor de IA?",
+ "aiProviderMessageRemove": "Esto eliminará permanentemente el proveedor y sus modelos y objetivos. Esto no se puede deshacer.",
+ "aiProviderErrorNoUpdate": "El proveedor de IA no está disponible para actualizar",
+ "aiProviderModels": "Modelos",
+ "aiProviderModelsDescription": "Definir las listas de permitidos y bloqueados para este proveedor. Las solicitudes deben coincidir con una entrada permitida y no deben coincidir con una entrada bloqueada.",
+ "aiProviderCreateModelsDescription": "Elija qué modelos puede servir este proveedor. Una lista permitida vacía niega todo el tráfico. Puede agregar o cambiar modelos más tarde.",
+ "aiProviderModelsPlaceholder": "Buscar modelos o escribir una clave personalizada",
+ "aiProviderModelsAllow": "Lista de Permitidos",
+ "aiProviderModelsAllowDescription": "Modelos que pueden utilizarse a través de este proveedor. Vacío significa negar todos.",
+ "aiProviderModelsAllowPlaceholder": "Ingrese la clave del modelo",
+ "aiProviderModelsAllowEmpty": "No se han agregado modelos aún.",
+ "aiProviderModelsBlock": "Lista de Bloqueados",
+ "aiProviderModelsBlockDescription": "Modelos para denegar incluso si coinciden con una entrada permitida.",
+ "aiProviderModelsBlockPlaceholder": "Ingrese la clave del modelo",
+ "aiProviderModelsBlockEmpty": "No se han agregado modelos aún.",
+ "aiProviderModelsAdd": "Agregar Modelos",
+ "aiProviderModelsClearAll": "Borrar todo",
+ "aiProviderModelsAddCustom": "Agregar \"{key}\"",
+ "aiProviderModelsAddCustomHint": "Presione Enter para agregar esta clave de modelo personalizada.",
+ "aiProviderModelsAddBulk": "Agregar {count} claves personalizadas.",
+ "aiProviderModelsAddBulkHint": "Presiona Enter para agregar {count} claves personalizadas.",
+ "aiProviderModelsAddOne": "Agregar {key} ahora",
+ "aiProviderModelsAddSelected": "Agregar seleccionado",
+ "aiProviderModelsSelectedCount": "{count} seleccionados",
+ "aiProviderModelsSelectAll": "Seleccionar todo",
+ "aiProviderModelsClearSelected": "Limpiar",
+ "aiProviderModelsBulkHint": "Seleccione modelos conocidos o escriba una clave personalizada.",
+ "aiProviderModelsCatalogEmpty": "No hay modelos de catálogo coincidentes.",
+ "aiProviderModelsCatalogHeading": "Modelos conocidos",
+ "aiProviderModelsAllLabel": "Todos los modelos",
+ "aiProviderModelsAllPatternHint": "Comodín: *",
+ "aiProviderModelsAddAllAllow": "Permitir todos los modelos",
+ "aiProviderModelsAddAllBlock": "Bloquear todos los modelos",
+ "aiProviderModelsAddAllDescription": "Utiliza el comodín * para que cada clave de modelo coincida.",
+ "aiProviderModelsViewMore": "Ver más ({count})",
+ "aiProviderModelsViewLess": "Ver menos",
+ "aiProviderModelsRemove": "Eliminar modelo",
+ "aiProviderModelsEditHint": "Haga clic para editar la configuración del modelo",
+ "aiProviderModelsSourceCatalog": "Modelo de catálogo conocido",
+ "aiProviderModelsSourceCustom": "Clave de modelo personalizada",
+ "aiProviderModelsSourcePattern": "Patrón de comodín",
+ "aiProviderModelsSourceAll": "Coincide con cada clave de modelo",
+ "aiProviderModelsBudgetConfigured": "Presupuesto configurado",
+ "aiProviderModelsEditTitle": "Editar modelo",
+ "aiProviderModelsEditDescription": "Actualizar la clave del modelo o configurar su presupuesto.",
+ "aiProviderModelsBudgetTab": "Presupuesto",
+ "aiProviderModelsKeyLabel": "Clave del modelo",
+ "aiProviderModelsKeyRequired": "Ingrese una clave de modelo",
+ "aiProviderModelsKeyDuplicate": "Esta clave de modelo ya está en una lista",
+ "aiProviderModelsOverlapError": "Estos patrones no pueden estar en ambas listas: {keys}",
+ "aiProviderModelsUpdated": "Modelos actualizados",
+ "aiProviderModelsErrorUpdate": "No se pudo actualizar los modelos",
+ "aiResourceProviders": "Proveedores",
+ "aiResourceProvidersDescription": "Elija qué proveedores de IA puede usar este portal de IA",
+ "aiResourceProvidersHelp": "Adjunte proveedores y elija heredar (usar las listas de cada proveedor) o seleccionar (elija una lista de permitidos para este recurso). No se permiten patrones de permisos que entren en conflicto entre proveedores adjuntos.",
+ "aiResourceProvidersSelect": "Seleccionar proveedores",
+ "aiResourceProvidersEmpty": "No se encontraron proveedores de IA",
+ "aiResourceProvidersNoneAttached": "No se han adjuntado proveedores aún.",
+ "aiResourceProvidersAdd": "Agregar proveedor",
+ "aiResourceProvidersRemove": "Eliminar proveedor",
+ "aiResourceProviderToggleEnabled": "Habilitar o deshabilitar este proveedor en el recurso",
+ "aiResourceProviderDisabled": "Deshabilitado",
+ "aiResourceProvidersUpdated": "Proveedores actualizados",
+ "aiResourceProvidersErrorUpdate": "Fallo al actualizar proveedores",
+ "aiResourceProviderEditDescription": "Elija cómo se exponen los modelos de este proveedor en este recurso.",
+ "viewProviderSettings": "Ver configuración del proveedor",
+ "aiResourceProviderMode": "Modo de acceso",
+ "aiResourceProviderModeInherit": "Heredar",
+ "aiResourceProviderModeSelect": "Seleccionar",
+ "aiResourceProviderModeSelectSummary": "Seleccionar · {count} modelos",
+ "aiResourceProviderModeInheritHelp": "Use las listas de permitidos y bloqueados de este proveedor según lo configurado en el proveedor.",
+ "aiResourceProviderModeSelectHelp": "Elija un subconjunto de modelos de la lista de permitidos de este proveedor para este recurso.",
+ "aiResourceProviderAllowModels": "Lista de permitidos",
+ "aiResourceProviderAllowModelsSelect": "Seleccionar modelos",
+ "aiResourceProviderAllowModelsSearch": "Buscar modelos...",
+ "aiResourceProviderAllowModelsEmpty": "No se encontraron modelos",
+ "aiResourceProviderAllowModelsHelp": "Solo se pueden seleccionar modelos de la lista de permitidos de este proveedor.",
+ "aiResourceAliasRequired": "Alias es necesario para portales de IA",
+ "aiResourceDomainConfiguration": "Configuración del dominio",
+ "aiResourceDomainConfigurationDescription": "Elija el dominio que los clientes usarán para llegar a este portal de IA.",
+ "aiUsageAnalyticsTitle": "Analítica de uso de IA",
+ "aiUsageAnalyticsDescription": "Analizar el costo del portal de IA, uso de token y actividad a través de proveedores, recursos, roles y usuarios",
+ "aiUsageTabOverview": "Resumen",
+ "aiUsageTabProviders": "Proveedores",
+ "aiUsageTabResources": "Recursos",
+ "aiUsageFilterProvider": "Proveedor",
+ "aiUsageFilterModel": "Modelo",
+ "aiUsageFilterResource": "Recurso",
+ "aiUsageFilterRole": "Rol",
+ "aiUsageFilterUser": "Usuario",
+ "aiUsageFilterAllProviders": "Todos los proveedores",
+ "aiUsageFilterAllModels": "Todos los modelos",
+ "aiUsageFilterAllResources": "Todos los recursos",
+ "aiUsageFilterAllRoles": "Todos los roles",
+ "aiUsageFilterAllUsers": "Todos los usuarios",
+ "aiUsageFilterSearch": "Buscar...",
+ "aiUsageFilterNotFound": "No se encontraron opciones",
+ "aiUsageResetFilters": "Restablecer filtros",
+ "aiUsageRefresh": "Actualizar",
+ "aiUsageTokenTypePrompt": "Indicio",
+ "aiUsageTokenTypeCacheRead": "Lectura de caché",
+ "aiUsageTokenTypeCacheWrite": "Escritura de caché",
+ "aiUsageTokenTypeCompletion": "Completitud",
+ "aiUsageTokenTypeReasoning": "Razonamiento",
+ "aiUsageRequests": "Solicitudes",
+ "aiUsageCost": "Costo",
+ "aiUsageTokens": "Tokens",
+ "aiUsageOther": "Otro",
+ "aiUsageTotalRequests": "Solicitudes Totales",
+ "aiUsageTotalTokens": "Tokens Totales",
+ "aiUsageTotalCost": "Costo Total",
+ "aiUsageEstimated": "Estimado",
+ "aiUsageRequestVolume": "Volumen de Solicitudes",
+ "aiUsageTokenUsage": "Uso de Tokens",
+ "aiUsageModelCost": "Costo del Modelo",
+ "aiUsageModelTokens": "Tokens del Modelo",
+ "aiUsageTopModels": "Modelos Principales",
+ "aiUsageTopProviders": "Proveedores Principales",
+ "aiUsageProviderCost": "Costo del Proveedor",
+ "aiUsageProviderTokenUsage": "Uso de Tokens del Proveedor",
+ "aiUsageTopResources": "Recursos Principales",
+ "aiUsageResourceCost": "Costo del Recurso",
+ "aiUsageResourceTokenUsage": "Uso de Tokens del Recurso",
+ "aiUsageResourceTypePublic": "Recurso Público",
+ "aiUsageResourceTypeSite": "Recurso Privado",
+ "aiUsageNoResource": "Sin recurso",
+ "aiUsageRolesTab": "Roles",
+ "aiUsageUsersTab": "Usuarios",
+ "aiUsageTopRoles": "Roles Principales",
+ "aiUsageRoleCost": "Costo del Rol",
+ "aiUsageRoleTokenUsage": "Uso de Tokens del Rol",
+ "aiUsageTopUsers": "Usuarios principales",
+ "aiUsageUserCost": "Costo del Usuario",
+ "aiUsageUserTokenUsage": "Uso de Tokens del Usuario",
+ "aiUsageUnknownUser": "Usuario desconocido",
+ "aiUsageVirtualApiKeysTab": "Claves API Virtuales",
+ "aiUsageFilterVirtualApiKey": "Clave API Virtual",
+ "aiUsageFilterAllVirtualApiKeys": "Todas las Claves API Virtuales",
+ "aiUsageTopVirtualApiKeys": "Claves API Virtuales Principales",
+ "aiUsageVirtualApiKeyCost": "Costo de la Clave API Virtual",
+ "aiUsageVirtualApiKeyTokenUsage": "Uso de Tokens de la Clave API Virtual",
+ "aiUsageUnknownVirtualApiKey": "Sin clave API virtual",
+ "aiUsageUnnamedVirtualApiKey": "Clave sin nombre",
+ "aiUsageLoading": "Cargando...",
+ "aiUsageNoData": "Sin información",
+ "resourceBudgetSettings": "Presupuesto",
+ "resourceBudgetSettingsDescription": "Configure cómo este portal de IA restringe el uso en función de los límites de gasto o tokens",
"sidebarApiKeys": "Claves API",
"sidebarProvisioning": "Aprovisionamiento",
"sidebarSettings": "Ajustes",
@@ -2193,6 +2638,8 @@
"subnetPlaceholder": "Subred",
"addressDescription": "La dirección interna del cliente. Debe estar dentro de la subred de la organización.",
"selectSites": "Seleccionar sitios",
+ "selectResources": "Seleccionar recursos",
+ "multiResourcesSelectorResourcesCount": "{count, plural, one {# recurso} other {# recursos}}",
"selectLabels": "Seleccionar etiquetas",
"sitesDescription": "El cliente tendrá conectividad con los sitios seleccionados",
"clientInstallOlm": "Instalar Olm",
@@ -2245,10 +2692,11 @@
"timeIsInSeconds": "El tiempo está en segundos",
"requireDeviceApproval": "Requiere aprobaciones del dispositivo",
"requireDeviceApprovalDescription": "Los usuarios con este rol necesitan nuevos dispositivos aprobados por un administrador antes de poder conectarse y acceder a los recursos.",
- "sshSettings": "Configuración SSH",
+ "sshSettings": "SSH",
+ "inferenceSettings": "Portal de IA",
"sshAccess": "Acceso SSH",
- "rdpSettings": "Configuración RDP",
- "vncSettings": "Configuración VNC",
+ "rdpSettings": "RDP",
+ "vncSettings": "VNC",
"sshServer": "Servidor SSH",
"rdpServer": "Servidor RDP",
"vncServer": "Servidor VNC",
@@ -2401,6 +2849,7 @@
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogModeHttp": "HTTP",
"editInternalResourceDialogModeHttps": "HTTPS",
+ "editInternalResourceDialogModeInference": "Portal de IA",
"editInternalResourceDialogModeSsh": "SSH",
"editInternalResourceDialogScheme": "Esquema",
"editInternalResourceDialogEnableSsl": "Activar TLS",
@@ -2421,8 +2870,8 @@
"privateResourceAllowIcmpPing": "Permitir ping ICMP",
"privateResourceNetworkAccess": "Acceso de red",
"privateResourceNetworkAccessDescription": "Controlar el acceso a puertos TCP/UDP y si se permite ping ICMP para este recurso.",
- "hostSettings": "Configuraciones del anfitrión",
- "cidrSettings": "Configuraciones CIDR",
+ "hostSettings": "Host",
+ "cidrSettings": "CIDR",
"createInternalResourceDialogResourceProperties": "Propiedades del recurso",
"createInternalResourceDialogName": "Nombre",
"createInternalResourceDialogSite": "Sitio",
@@ -2460,6 +2909,7 @@
"createInternalResourceDialogModeHttp": "HTTP",
"createInternalResourceDialogModeHttps": "HTTPS",
"createInternalResourceDialogModeSsh": "SSH",
+ "createInternalResourceDialogModeInference": "Portal de IA",
"scheme": "Esquema",
"createInternalResourceDialogScheme": "Esquema",
"createInternalResourceDialogEnableSsl": "Activar TLS",
@@ -3051,6 +3501,7 @@
"validPassword": "Contraseña válida",
"validEmail": "Valid email",
"validSSO": "Valid SSO",
+ "validVirtualAPIKey": "Clave API Virtual Válida",
"view": "Ver",
"configManaged": "Configuración Gestionada",
"connectedClient": "Cliente conectado",
@@ -3072,6 +3523,38 @@
"logRetention": "Retención de Log",
"logRetentionDescription": "Administrar cuánto tiempo se conservan los diferentes tipos de registros para esta organización o desactivarlos",
"requestLogsDescription": "Ver registros de solicitudes detallados para los recursos de esta organización",
+ "aiSessionLogs": "Registros de Sesiones del Portal de IA",
+ "aiSessionLogsDescription": "Ver transcripciones de solicitud y respuesta para solicitudes del portal de IA en esta organización",
+ "sidebarLogsAi": "Registros de Sesiones",
+ "commandLogsAi": "Registros de Sesiones",
+ "sidebarLogsAiUsage": "Analítica de Uso",
+ "commandLogsAiUsage": "Analítica de Uso",
+ "provider": "Proveedor",
+ "capability": "Capacidad",
+ "model": "Modelo",
+ "virtualApiKey": "Clave API Virtual",
+ "noVirtualApiKey": "Sin clave API virtual",
+ "stream": "Flujo",
+ "streaming": "Flujo de eventos",
+ "nonStreaming": "No-flujo",
+ "statusCode": "Código de estado",
+ "aiSessionId": "ID de Sesión",
+ "aiSessionRequest": "Solicitud",
+ "aiSessionResponse": "Respuesta",
+ "aiSessionNoData": "Sin datos capturados",
+ "aiSessionCouldNotParse": "(sin procesar, no se pudo analizar la transcripción)",
+ "aiSessionLogTruncated": "Esta sesión fue truncada antes del almacenamiento y puede estar incompleta.",
+ "aiSessionViewRaw": "Ver JSON sin procesar",
+ "aiSessionViewChat": "Ver Chat",
+ "cost": "Costo",
+ "estimated": "Estimado",
+ "tokenUsage": "Uso de Tokens",
+ "promptTokens": "Tokens de Indicio",
+ "cacheReadTokens": "Tokens de Lectura de Caché",
+ "cacheWriteTokens": "Tokens de Escritura de Caché",
+ "completionTokens": "Tokens de Completitud",
+ "reasoningTokens": "Tokens de Razonamiento",
+ "totalTokens": "Total de Tokens",
"requestAnalyticsDescription": "Ver análisis de solicitudes detalladas de recursos en esta organización",
"logRetentionRequestLabel": "Retención de Registro de Solicitud HTTP",
"logRetentionRequestDescription": "Cuánto tiempo conservar los registros de solicitudes",
@@ -3081,6 +3564,8 @@
"logRetentionActionDescription": "Cuánto tiempo retener los registros de acción",
"logRetentionConnectionLabel": "Retención de Registro de Conexión",
"logRetentionConnectionDescription": "Cuánto tiempo conservar los registros de conexión",
+ "logRetentionAISessionsLabel": "Retención de Registro de Sesiones del Portal de IA",
+ "logRetentionAISessionsDescription": "Cuánto tiempo retener los registros de sesión de solicitud/respuesta del portal de IA",
"logRetentionDisabled": "Deshabilitado",
"logRetention3Days": "3 días",
"logRetention7Days": "7 días",
@@ -3098,8 +3583,8 @@
"sourceAddress": "Dirección de origen",
"destinationAddress": "Dirección de destino",
"duration": "Duración",
- "licenseRequiredToUse": "Se requiere una licencia Enterprise Edition o Pangolin Cloud para usar esta función. Reserve una demostración gratuita o una prueba POC para saber más.",
- "ossEnterpriseEditionRequired": "La Enterprise Edition es necesaria para utilizar esta función. Esta función también está disponible en Pangolin Cloud. Reserva una demostración gratuita o prueba POC para saber más.",
+ "licenseRequiredToUse": "Se requiere una licencia para la Edición Empresarial. Reserve una demostración o prueba",
+ "ossEnterpriseEditionRequired": "Se requiere una licencia para la Edición Empresarial. Reserve una demostración o prueba",
"certResolver": "Resolver certificado",
"certResolverDescription": "Seleccione la resolución de certificados a utilizar para este recurso.",
"selectCertResolver": "Seleccionar Resolver Certificado",
@@ -3297,9 +3782,9 @@
"internalResourceFormMultiSiteRoutingHelp": "Seleccionar múltiples sitios habilita el enrutamiento resistente y la conmutación por error para alta disponibilidad.",
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Más información",
"editInternalResourceDialogPortRestrictionsDescription": "Restringir el acceso a puertos TCP/UDP específicos o permitir/bloquear todos los puertos.",
- "createInternalResourceDialogHttpConfiguration": "Configuración HTTP",
+ "createInternalResourceDialogHttpConfiguration": "Configuración del dominio",
"createInternalResourceDialogHttpConfigurationDescription": "Elija el dominio que los clientes usarán para alcanzar este recurso a través de HTTP o HTTPS.",
- "editInternalResourceDialogHttpConfiguration": "Configuración HTTP",
+ "editInternalResourceDialogHttpConfiguration": "Configuración del dominio",
"editInternalResourceDialogHttpConfigurationDescription": "Elija el dominio que los clientes usarán para alcanzar este recurso a través de HTTP o HTTPS.",
"editInternalResourceDialogTcp": "TCP",
"editInternalResourceDialogUdp": "UDP",
@@ -3735,7 +4220,18 @@
"resourceLauncherTcp": "TCP",
"resourceLauncherUdp": "UDP",
"resourceLauncherUnlabeled": "Sin Etiqueta",
+ "resourceLauncherAiGateway": "Portal de IA",
"resourceLauncherNoSite": "Sin Sitio",
+ "resourceLauncherAvailableModels": "Modelos Disponibles",
+ "resourceLauncherAvailableModelsDescription": "Modelos que puede usar con este portal de IA.",
+ "resourceLauncherAvailableModelsEmpty": "No hay modelos disponibles para este recurso.",
+ "resourceLauncherAvailableModelsError": "No se pudieron cargar los modelos disponibles.",
+ "resourceLauncherApiKeys": "Claves API",
+ "resourceLauncherApiKeysDescription": "Use su clave de identidad o una clave atribuida para autenticarse con este recurso.",
+ "resourceLauncherApiKeysIdentity": "Clave de Identidad",
+ "resourceLauncherApiKeysManual": "Claves Atribuidas",
+ "resourceLauncherApiKeysEmpty": "No hay claves API disponibles para este recurso.",
+ "resourceLauncherApiKeysError": "No se pudieron cargar las claves API.",
"resourceLauncherNoResourcesInGroup": "No hay recursos en este grupo",
"resourceLauncherEmptyStateTitle": "No hay Recursos Disponibles",
"resourceLauncherEmptyStateDescription": "Todavía no tienes acceso a ningún recurso. Contacta a tu administrador para solicitar acceso.",
@@ -3762,9 +4258,9 @@
"resourceLauncherViewDeleteFailedDescription": "No se pudo eliminar la vista del lanzador. Por favor, intenta de nuevo.",
"memberPortalPrevious": "Anterior",
"memberPortalNext": "Siguiente",
- "httpSettings": "Configuración HTTP",
- "tcpSettings": "Configuración TCP",
- "udpSettings": "Configuración UDP",
+ "httpSettings": "HTTP",
+ "tcpSettings": "TCP",
+ "udpSettings": "UDP",
"sshTitle": "SSH",
"sshConnectingDescription": "Estableciendo una conexión segura…",
"sshConnecting": "Conectando…",