diff --git a/messages/bg-BG.json b/messages/bg-BG.json index 84a8e68cf..15a2d36db 100644 --- a/messages/bg-BG.json +++ b/messages/bg-BG.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Ключът за осигуряване е актуализиран", "provisioningKeysUpdatedDescription": "Вашите промени бяха запазени.", "provisioningKeysBannerTitle": "Ключове за осигуряване на сайта", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Генерирайте ключ за осигуряване и го използвайте със съединителя Newt за автоматично създаване на сайтове при първоначално стартиране - не е необходимо да се създават отделни идентификационни данни за всеки сайт.", "provisioningKeysBannerButtonText": "Научете повече", "pendingSitesBannerTitle": "Чакащи сайтове", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Сайтовете, които се свързват с ключ за осигуряване, ще се появят тук за преглед.", "pendingSitesBannerButtonText": "Научете повече", "apiKeysSettings": "Настройки на {apiKeyName}", "userTitle": "Управление на всички потребители", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Моля, въведете валиден номер на порт", "targetErrorNoSite": "Няма избран сайт", "targetErrorNoSiteDescription": "Моля, изберете сайт за целта", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Мишените са премахнати", + "targetTargetsClearedDescription": "Всички цели са били премахнати от този ресурс", "targetCreated": "Целта е създадена", "targetCreatedDescription": "Целта беше успешно създадена", "targetErrorCreate": "Неуспешно създаване на целта", @@ -2348,7 +2348,7 @@ "description": "Предприятие, 50 потребители, 50 сайта и приоритетна поддръжка." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Само за лична употреба (безплатен лиценз - без проверка)", "buttons": { "continueToCheckout": "Продължете към плащане" }, @@ -2609,9 +2609,9 @@ "machineClients": "Машинни клиенти", "install": "Инсталирай", "run": "Изпълни", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Файл за среда", + "serviceFile": "Файл за услуга", + "enableAndStart": "Активиране и стартиране", "clientNameDescription": "Показваното име на клиента, което може да се промени по-късно.", "clientAddress": "Клиентски адрес (Разширено)", "setupFailedToFetchSubnet": "Неуспешно извличане на подмрежа по подразбиране", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Без удостоверяване", "httpDestAuthNoneDescription": "Изпращане на заявки без заглавие за удостоверяване.", "httpDestAuthBearerTitle": "Bearer Токен", - "httpDestAuthBearerDescription": "Добавя заглавие за удостоверяване Bearer '' към всяка заявка.", + "httpDestAuthBearerDescription": "Добавя заглавие Authorization: Bearer '' към всяка заявка.", "httpDestAuthBearerPlaceholder": "Вашият API ключ или токен", "httpDestAuthBasicTitle": "Основно удостоверяване", - "httpDestAuthBasicDescription": "Добавя заглавие за удостоверяване Basic '' към всяка заявка. Осигурете идентификационни данни като потребителско име:парола.", + "httpDestAuthBasicDescription": "Добавя заглавие Authorization: Basic ''. Осигурете идентификационни данни като потребителско име:парола.", "httpDestAuthBasicPlaceholder": "потребителско име:парола", "httpDestAuthCustomTitle": "Персонализирано заглавие", "httpDestAuthCustomDescription": "Посочете персонализирано име и стойност на заглавието за удостоверяване (например X-API-Key).", diff --git a/messages/cs-CZ.json b/messages/cs-CZ.json index a38e8a554..aa564ae5b 100644 --- a/messages/cs-CZ.json +++ b/messages/cs-CZ.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Zajišťovací klíč byl aktualizován", "provisioningKeysUpdatedDescription": "Vaše změny byly uloženy.", "provisioningKeysBannerTitle": "Klíče pro poskytování webu", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Vygenerujte klíč pro zřízení a použijte ho s Newt konektorem k automatickému vytvoření stránek při prvním spuštění – není potřeba nastavit samostatné přihlašovací údaje pro každou stránku.", "provisioningKeysBannerButtonText": "Zjistit více", "pendingSitesBannerTitle": "Nevyřízené weby", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Stránky, které se připojují pomocí klíče pro zřízení, se zde objeví ke kontrole.", "pendingSitesBannerButtonText": "Zjistit více", "apiKeysSettings": "Nastavení {apiKeyName}", "userTitle": "Spravovat všechny uživatele", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Zadejte platné číslo portu", "targetErrorNoSite": "Není vybrán žádný web", "targetErrorNoSiteDescription": "Vyberte prosím web pro cíl", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Cíle vymazány", + "targetTargetsClearedDescription": "Všechny cíle byly odstraněny z tohoto zdroje", "targetCreated": "Cíl byl vytvořen", "targetCreatedDescription": "Cíl byl úspěšně vytvořen", "targetErrorCreate": "Nepodařilo se vytvořit cíl", @@ -2348,7 +2348,7 @@ "description": "Podnikové funkce, 50 uživatelů, 50 míst a prioritní podpory." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Pouze pro osobní použití (zdarma licence - bez ověření)", "buttons": { "continueToCheckout": "Pokračovat do pokladny" }, @@ -2609,9 +2609,9 @@ "machineClients": "Strojoví klienti", "install": "Instalovat", "run": "Spustit", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Konfigurační soubor prostředí", + "serviceFile": "Služební soubor", + "enableAndStart": "Povolit a spustit", "clientNameDescription": "Zobrazované jméno klienta, které lze později změnit.", "clientAddress": "Adresa klienta (Rozšířeno)", "setupFailedToFetchSubnet": "Nepodařilo se načíst výchozí podsíť", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Žádné ověření", "httpDestAuthNoneDescription": "Odešle žádosti bez záhlaví autorizace.", "httpDestAuthBearerTitle": "Token na doručitele", - "httpDestAuthBearerDescription": "Přidá autorizaci: Hlavička Bearer '' ke každému požadavku.", + "httpDestAuthBearerDescription": "Přidává hlavičku Authorization: Bearer '' k každému požadavku.", "httpDestAuthBearerPlaceholder": "Váš API klíč nebo token", "httpDestAuthBasicTitle": "Základní ověření", - "httpDestAuthBasicDescription": "Přidá autorizaci: Základní '' hlavička. Poskytněte přihlašovací údaje jako uživatelské jméno:password.", + "httpDestAuthBasicDescription": "Přidává hlavičku Authorization: Basic ''. Poskytněte přihlašovací údaje ve formátu uživatelské jméno:heslo.", "httpDestAuthBasicPlaceholder": "uživatelské jméno:heslo", "httpDestAuthCustomTitle": "Vlastní záhlaví", "httpDestAuthCustomDescription": "Zadejte název a hodnotu vlastního HTTP hlavičky pro ověření (např. X-API-Key).", diff --git a/messages/de-DE.json b/messages/de-DE.json index e80f085eb..7518ba5ff 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Bereitstellungsschlüssel aktualisiert", "provisioningKeysUpdatedDescription": "Ihre Änderungen wurden gespeichert.", "provisioningKeysBannerTitle": "Website-Bereitstellungsschlüssel", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Generieren Sie einen Bereitstellungsschlüssel und verwenden Sie ihn mit dem Newt-Connector, um Standorte beim ersten Start automatisch zu erstellen - keine Notwendigkeit, separate Anmeldedaten für jede Seite einzurichten.", "provisioningKeysBannerButtonText": "Mehr erfahren", "pendingSitesBannerTitle": "Ausstehende Seiten", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Websites, die mit einem Bereitstellungsschlüssel verbunden sind, erscheinen hier zur Überprüfung.", "pendingSitesBannerButtonText": "Mehr erfahren", "apiKeysSettings": "{apiKeyName} Einstellungen", "userTitle": "Alle Benutzer verwalten", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Bitte geben Sie eine gültige Portnummer ein", "targetErrorNoSite": "Kein Standort ausgewählt", "targetErrorNoSiteDescription": "Bitte wähle einen Standort für das Ziel aus", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Ziele gelöscht", + "targetTargetsClearedDescription": "Alle Ziele wurden aus dieser Ressource entfernt", "targetCreated": "Ziel erstellt", "targetCreatedDescription": "Ziel wurde erfolgreich erstellt", "targetErrorCreate": "Fehler beim Erstellen des Ziels", @@ -2348,7 +2348,7 @@ "description": "Enterprise Features, 50 Benutzer, 50 Sites und Prioritätsunterstützung." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Nur persönliche Nutzung (kostenlose Lizenz - kein Checkout)", "buttons": { "continueToCheckout": "Weiter zur Kasse" }, @@ -2609,9 +2609,9 @@ "machineClients": "Maschinen-Clients", "install": "Installieren", "run": "Ausführen", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Umgebungsdatei", + "serviceFile": "Servicedatei", + "enableAndStart": "Aktivieren und Starten", "clientNameDescription": "Der Anzeigename des Clients, der später geändert werden kann.", "clientAddress": "Clientadresse (Erweitert)", "setupFailedToFetchSubnet": "Fehler beim Abrufen des Standard-Subnetzes", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Keine Authentifizierung", "httpDestAuthNoneDescription": "Sendet Anfragen ohne Autorisierungs-Header.", "httpDestAuthBearerTitle": "Bären-Token", - "httpDestAuthBearerDescription": "Fügt eine Berechtigung hinzu: Bearer '' Header zu jeder Anfrage.", + "httpDestAuthBearerDescription": "Fügt jedem Anfrage-Header eine \"Authorization: Bearer ''\" hinzu.", "httpDestAuthBearerPlaceholder": "Ihr API-Schlüssel oder Token", "httpDestAuthBasicTitle": "Einfacher Auth", - "httpDestAuthBasicDescription": "Fügt eine Autorisierung hinzu: Basic '' Kopfzeile hinzu. Geben Sie Anmeldedaten als Benutzername:password an.", + "httpDestAuthBasicDescription": "Fügt einen \"Authorization: Basic ''\"-Header hinzu. Geben Sie die Anmeldedaten als Benutzername:Passwort an.", "httpDestAuthBasicPlaceholder": "benutzername:password", "httpDestAuthCustomTitle": "Eigene Kopfzeile", "httpDestAuthCustomDescription": "Geben Sie einen eigenen HTTP-Header-Namen und einen Wert für die Authentifizierung an (z.B. X-API-Key).", diff --git a/messages/es-ES.json b/messages/es-ES.json index 0a1827387..e2e9bdf51 100644 --- a/messages/es-ES.json +++ b/messages/es-ES.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Clave de aprovisionamiento actualizada", "provisioningKeysUpdatedDescription": "Sus cambios han sido guardados.", "provisioningKeysBannerTitle": "Claves de aprovisionamiento del sitio", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Genere una clave de aprovisionamiento y utilícela con el conector Newt para crear automáticamente sitios en el primer inicio: no es necesario configurar credenciales separadas para cada sitio.", "provisioningKeysBannerButtonText": "Saber más", "pendingSitesBannerTitle": "Sitios pendientes", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Los sitios que se conectan utilizando una clave de aprovisionamiento aparecerán aquí para su revisión.", "pendingSitesBannerButtonText": "Saber más", "apiKeysSettings": "Ajustes {apiKeyName}", "userTitle": "Administrar todos los usuarios", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Por favor, introduzca un número de puerto válido", "targetErrorNoSite": "Ningún sitio seleccionado", "targetErrorNoSiteDescription": "Por favor, seleccione un sitio para el objetivo", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Objetivos eliminados", + "targetTargetsClearedDescription": "Todos los objetivos han sido eliminados de este recurso", "targetCreated": "Objetivo creado", "targetCreatedDescription": "El objetivo se ha creado correctamente", "targetErrorCreate": "Error al crear el objetivo", @@ -2348,7 +2348,7 @@ "description": "Características de la empresa, 50 usuarios, 50 sitios y soporte prioritario." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Solo uso personal (licencia gratuita - sin salida)", "buttons": { "continueToCheckout": "Continuar con el pago" }, @@ -2609,9 +2609,9 @@ "machineClients": "Clientes de la máquina", "install": "Instalar", "run": "Ejecutar", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Archivo de Entorno", + "serviceFile": "Archivo de Servicio", + "enableAndStart": "Habilitar y empezar", "clientNameDescription": "El nombre mostrado del cliente que se puede cambiar más adelante.", "clientAddress": "Dirección del cliente (Avanzado)", "setupFailedToFetchSubnet": "No se pudo obtener la subred por defecto", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Sin autenticación", "httpDestAuthNoneDescription": "Envía solicitudes sin un encabezado de autorización.", "httpDestAuthBearerTitle": "Tóken de portador", - "httpDestAuthBearerDescription": "Añade una autorización: portador '' encabezado a cada solicitud.", + "httpDestAuthBearerDescription": "Añade un encabezado Authorization: Bearer '' a cada solicitud.", "httpDestAuthBearerPlaceholder": "Tu clave o token API", "httpDestAuthBasicTitle": "Auth Básica", - "httpDestAuthBasicDescription": "Añade una Autorización: encabezado básico '' . Proporcione credenciales como nombre de usuario: contraseña.", + "httpDestAuthBasicDescription": "Añade un encabezado Authorization: Basic ''. Proporcione las credenciales como nombredeusuario:contraseña.", "httpDestAuthBasicPlaceholder": "usuario:contraseña", "httpDestAuthCustomTitle": "Cabecera personalizada", "httpDestAuthCustomDescription": "Especifique un nombre de cabecera HTTP personalizado y un valor para la autenticación (por ejemplo, X-API-Key).", diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 4305595d9..20d764f75 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Clé de provisioning mise à jour", "provisioningKeysUpdatedDescription": "Vos modifications ont été enregistrées.", "provisioningKeysBannerTitle": "Clés de provisioning du site", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Générez une clé de provisionnement et utilisez-la avec le connecteur Newt pour créer automatiquement des sites lors du premier démarrage - sans besoin de configurer des identifiants séparés pour chaque site.", "provisioningKeysBannerButtonText": "En savoir plus", "pendingSitesBannerTitle": "Sites en attente", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Les sites qui se connectent en utilisant une clé de provisionnement apparaissent ici pour révision.", "pendingSitesBannerButtonText": "En savoir plus", "apiKeysSettings": "Paramètres de {apiKeyName}", "userTitle": "Gérer tous les utilisateurs", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Veuillez entrer un numéro de port valide", "targetErrorNoSite": "Aucun site sélectionné", "targetErrorNoSiteDescription": "Veuillez sélectionner un site pour la cible", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Cibles effacées", + "targetTargetsClearedDescription": "Toutes les cibles ont été retirées de cette ressource", "targetCreated": "Cible créée", "targetCreatedDescription": "La cible a été créée avec succès", "targetErrorCreate": "Impossible de créer la cible", @@ -2348,7 +2348,7 @@ "description": "Fonctionnalités d'entreprise, 50 utilisateurs, 50 sites et une prise en charge prioritaire." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Usage personnel uniquement (licence gratuite - pas de validation)", "buttons": { "continueToCheckout": "Continuer vers le paiement" }, @@ -2609,9 +2609,9 @@ "machineClients": "Clients Machines", "install": "Installer", "run": "Exécuter", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Fichier Environnement", + "serviceFile": "Fichier de Service", + "enableAndStart": "Activer et Démarrer", "clientNameDescription": "Le nom d'affichage du client qui peut être modifié plus tard.", "clientAddress": "Adresse du client (Avancé)", "setupFailedToFetchSubnet": "Impossible de récupérer le sous-réseau par défaut", @@ -2853,7 +2853,7 @@ "httpDestAuthBearerDescription": "Ajoute un en-tête Authorization: Bearer '' à chaque requête.", "httpDestAuthBearerPlaceholder": "Votre clé API ou votre jeton", "httpDestAuthBasicTitle": "Authentification basique", - "httpDestAuthBasicDescription": "Ajoute une autorisation : en-tête de base '' . Fournissez des informations d'identification comme nom d'utilisateur:mot de passe.", + "httpDestAuthBasicDescription": "Ajoute un en-tête Authorization: Basic ''. Fournissez les identifiants sous la forme nom d'utilisateur:mot de passe.", "httpDestAuthBasicPlaceholder": "nom d'utilisateur:mot de passe", "httpDestAuthCustomTitle": "En-tête personnalisé", "httpDestAuthCustomDescription": "Spécifiez un nom d'en-tête HTTP personnalisé et une valeur pour l'authentification (par exemple X-API-Key).", diff --git a/messages/it-IT.json b/messages/it-IT.json index 5624d763c..7aa39bb74 100644 --- a/messages/it-IT.json +++ b/messages/it-IT.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Chiave di accantonamento aggiornata", "provisioningKeysUpdatedDescription": "Le tue modifiche sono state salvate.", "provisioningKeysBannerTitle": "Chiavi Di Provvedimento Sito", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Genera una chiave di provisioning e usala con il connettore Newt per creare automaticamente i siti al primo avvio - non è necessario configurare credenziali separate per ogni sito.", "provisioningKeysBannerButtonText": "Scopri di più", "pendingSitesBannerTitle": "Siti In Attesa", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "I siti che si connettono utilizzando una chiave di provisioning vengono visualizzati qui per la revisione.", "pendingSitesBannerButtonText": "Scopri di più", "apiKeysSettings": "Impostazioni {apiKeyName}", "userTitle": "Gestisci Tutti Gli Utenti", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Inserisci un numero di porta valido", "targetErrorNoSite": "Nessun sito selezionato", "targetErrorNoSiteDescription": "Si prega di selezionare un sito per l'obiettivo", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Obiettivi cancellati", + "targetTargetsClearedDescription": "Tutti gli obiettivi sono stati rimossi da questa risorsa", "targetCreated": "Destinazione creata", "targetCreatedDescription": "L'obiettivo è stato creato con successo", "targetErrorCreate": "Impossibile creare l'obiettivo", @@ -2348,7 +2348,7 @@ "description": "Funzionalità aziendali, 50 utenti, 50 siti e supporto prioritario." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Uso personale esclusivo (licenza gratuita - nessun pagamento)", "buttons": { "continueToCheckout": "Continua al Checkout" }, @@ -2609,9 +2609,9 @@ "machineClients": "Machine Clients", "install": "Installa", "run": "Esegui", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "File di ambiente", + "serviceFile": "File di servizio", + "enableAndStart": "Abilita e avvia", "clientNameDescription": "Il nome visualizzato del client che può essere modificato in seguito.", "clientAddress": "Indirizzo Client (Avanzato)", "setupFailedToFetchSubnet": "Recupero della sottorete predefinita non riuscito", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Nessuna Autenticazione", "httpDestAuthNoneDescription": "Invia richieste senza intestazione autorizzazione.", "httpDestAuthBearerTitle": "Token Del Portatore", - "httpDestAuthBearerDescription": "Aggiunge un'intestazione Autorizzazione: Bearer '' ad ogni richiesta.", + "httpDestAuthBearerDescription": "Aggiunge un'intestazione Authorization: Bearer '' a ogni richiesta.", "httpDestAuthBearerPlaceholder": "La tua chiave API o token", "httpDestAuthBasicTitle": "Autenticazione Base", - "httpDestAuthBasicDescription": "Aggiunge un'autorizzazione: intestazione di base '' . Fornisce le credenziali come username:password.", + "httpDestAuthBasicDescription": "Aggiunge un'intestazione Authorization: Basic ''. Fornire le credenziali come username:password.", "httpDestAuthBasicPlaceholder": "username:password", "httpDestAuthCustomTitle": "Intestazione Personalizzata", "httpDestAuthCustomDescription": "Specifica un nome e un valore di intestazione HTTP personalizzati per l'autenticazione (ad esempio X-API-Key).", diff --git a/messages/ko-KR.json b/messages/ko-KR.json index e2c4642c5..666ffecb1 100644 --- a/messages/ko-KR.json +++ b/messages/ko-KR.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "프로비저닝 키가 업데이트되었습니다", "provisioningKeysUpdatedDescription": "변경 사항이 저장되었습니다.", "provisioningKeysBannerTitle": "사이트 프로비저닝 키", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "프로비저닝 키를 생성하고 Newt 커넥터와 함께 사용하여 첫 시작 시 사이트를 자동 생성 - 각 사이트에 대한 별도 자격 증명이 필요 없습니다.", "provisioningKeysBannerButtonText": "자세히 알아보기", "pendingSitesBannerTitle": "대기중인 사이트", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "프로비저닝 키를 사용하여 연결된 사이트가 검토를 위해 여기에 표시됩니다.", "pendingSitesBannerButtonText": "자세히 알아보기", "apiKeysSettings": "{apiKeyName} 설정", "userTitle": "모든 사용자 관리", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "유효한 포트 번호를 입력하세요.", "targetErrorNoSite": "선택된 사이트 없음", "targetErrorNoSiteDescription": "대상을 위해 사이트를 선택하세요.", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "대상이 제거됨", + "targetTargetsClearedDescription": "이 리소스에서 모든 대상이 제거되었습니다", "targetCreated": "대상 생성", "targetCreatedDescription": "대상이 성공적으로 생성되었습니다.", "targetErrorCreate": "대상 생성 실패", @@ -2348,7 +2348,7 @@ "description": "기업 기능, 50명의 사용자, 50개의 사이트, 우선 지원." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "개인용으로만 사용 (무료 라이선스 - 결제 없음)", "buttons": { "continueToCheckout": "결제로 진행" }, @@ -2609,9 +2609,9 @@ "machineClients": "기계 클라이언트", "install": "설치", "run": "실행", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "환경 파일", + "serviceFile": "서비스 파일", + "enableAndStart": "활성화 및 시작", "clientNameDescription": "나중에 변경할 수 있는 클라이언트의 표시 이름입니다.", "clientAddress": "클라이언트 주소(고급)", "setupFailedToFetchSubnet": "기본값 로드 실패", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "인증 없음", "httpDestAuthNoneDescription": "Authorization 헤더 없이 요청을 보냅니다.", "httpDestAuthBearerTitle": "Bearer 토큰", - "httpDestAuthBearerDescription": "모든 요청에 Authorization: Bearer '' 헤더를 추가합니다.", + "httpDestAuthBearerDescription": "각 요청에 Authorization: Bearer '' 헤더를 추가합니다.", "httpDestAuthBearerPlaceholder": "API 키 또는 토큰", "httpDestAuthBasicTitle": "기본 인증", - "httpDestAuthBasicDescription": "Authorization: Basic '' 헤더를 추가합니다. 자격 증명은 username:password 형식으로 제공하세요.", + "httpDestAuthBasicDescription": "Authorization: Basic '' 헤더를 추가합니다. 자격 증명은 사용자 이름:비밀번호로 제공합니다.", "httpDestAuthBasicPlaceholder": "사용자 이름:비밀번호", "httpDestAuthCustomTitle": "사용자 정의 헤더", "httpDestAuthCustomDescription": "인증을 위한 사용자 정의 HTTP 헤더 이름 및 값을 지정하세요 (예: X-API-Key).", diff --git a/messages/nb-NO.json b/messages/nb-NO.json index 6473644b7..3458d86b8 100644 --- a/messages/nb-NO.json +++ b/messages/nb-NO.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Foreslå nøkkel oppdatert", "provisioningKeysUpdatedDescription": "Dine endringer er lagret.", "provisioningKeysBannerTitle": "Sidens bestemmende nøkler", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Generer en provisjonsnøkkel og bruk den med Newt-kontakten for automatisk opprettelse av nettsteder ved første oppstart - ingen behov for å sette opp separate legitimasjoner for hvert nettsted.", "provisioningKeysBannerButtonText": "Lær mer", "pendingSitesBannerTitle": "Ventende nettsteder", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Nettsteder som kobler seg til ved bruk av en provisjonsnøkkel vises her for vurdering.", "pendingSitesBannerButtonText": "Lær mer", "apiKeysSettings": "{apiKeyName} Innstillinger", "userTitle": "Administrer alle brukere", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Vennligst skriv inn et gyldig portnummer", "targetErrorNoSite": "Ingen nettsted valgt", "targetErrorNoSiteDescription": "Velg et nettsted for målet", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Mål ryddet", + "targetTargetsClearedDescription": "Alle mål har blitt fjernet fra denne ressursen", "targetCreated": "Mål opprettet", "targetCreatedDescription": "Målet har blitt opprettet", "targetErrorCreate": "Kunne ikke opprette målet", @@ -2348,7 +2348,7 @@ "description": "Enterprise features, 50 brukere, 50 nettsteder og prioritetsstøtte." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Kun personlig bruk (gratis lisens - ingen kasse)", "buttons": { "continueToCheckout": "Fortsett til kassen" }, @@ -2609,9 +2609,9 @@ "machineClients": "Maskinklienter", "install": "Installer", "run": "Kjør", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Miljøfil", + "serviceFile": "Tjenestefil", + "enableAndStart": "Aktiver og start", "clientNameDescription": "Visningsnavnet til klienten som kan endres senere.", "clientAddress": "Klientadresse (avansert)", "setupFailedToFetchSubnet": "Kunne ikke hente standard undernett", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Ingen godkjenning", "httpDestAuthNoneDescription": "Sender forespørsler uten autorisasjonsoverskrift.", "httpDestAuthBearerTitle": "Bærer Symbol", - "httpDestAuthBearerDescription": "Legger til en autorisasjon: Bearer '' header til hver forespørsel.", + "httpDestAuthBearerDescription": "Legger til en Autorisasjon: Bearer '' header til hver forespørsel.", "httpDestAuthBearerPlaceholder": "Din API-nøkkel eller token", "httpDestAuthBasicTitle": "Standard Auth", - "httpDestAuthBasicDescription": "Legger til en godkjenning: Grunnleggende '' overskrift. Angi legitimasjon som brukernavn:passord.", + "httpDestAuthBasicDescription": "Legger til en Autorisasjon: Basic '' header. Gi legitimasjon som brukernavn:passord.", "httpDestAuthBasicPlaceholder": "brukernavn:passord", "httpDestAuthCustomTitle": "Egendefinert topptekst", "httpDestAuthCustomDescription": "Angi et egendefinert HTTP headers navn og verdi for autentisering (f.eks X-API-Key).", diff --git a/messages/nl-NL.json b/messages/nl-NL.json index d6b178048..66d67abd7 100644 --- a/messages/nl-NL.json +++ b/messages/nl-NL.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Provisie sleutel bijgewerkt", "provisioningKeysUpdatedDescription": "Uw wijzigingen zijn opgeslagen.", "provisioningKeysBannerTitle": "Bewerkingssleutels voor websites", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Genereer een inrichtingssleutel en gebruik deze met de Newt-connector om automatisch sites te maken bij de eerste opstart - er is geen behoefte om aparte inloggegevens voor elke site in te stellen.", "provisioningKeysBannerButtonText": "Meer informatie", "pendingSitesBannerTitle": "Openstaande sites", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Sites die verbinding maken met een inrichtingssleutel verschijnen hier voor beoordeling.", "pendingSitesBannerButtonText": "Meer informatie", "apiKeysSettings": "{apiKeyName} instellingen", "userTitle": "Alle gebruikers beheren", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Voer een geldig poortnummer in", "targetErrorNoSite": "Geen site geselecteerd", "targetErrorNoSiteDescription": "Selecteer een site voor het doel", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Doelen gewist", + "targetTargetsClearedDescription": "Alle doelen zijn verwijderd van deze bron", "targetCreated": "Doel aangemaakt", "targetCreatedDescription": "Doel is succesvol aangemaakt", "targetErrorCreate": "Kan doel niet aanmaken", @@ -2348,7 +2348,7 @@ "description": "Enterprise functies, 50 gebruikers, 50 sites en prioriteit ondersteuning." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Alleen voor persoonlijk gebruik (gratis licentie - geen afrekening)", "buttons": { "continueToCheckout": "Doorgaan naar afrekenen" }, @@ -2609,9 +2609,9 @@ "machineClients": "Machine Clienten", "install": "Installeren", "run": "Uitvoeren", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Omgevingsbestand", + "serviceFile": "Servicebestand", + "enableAndStart": "Inschakelen en Starten", "clientNameDescription": "De weergavenaam van de client die later gewijzigd kan worden.", "clientAddress": "Klant adres (Geavanceerd)", "setupFailedToFetchSubnet": "Kan standaard subnet niet ophalen", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Geen authenticatie", "httpDestAuthNoneDescription": "Stuurt verzoeken zonder toestemmingskop.", "httpDestAuthBearerTitle": "Betere Token", - "httpDestAuthBearerDescription": "Voegt een machtiging toe: Drager '' header aan elke aanvraag.", + "httpDestAuthBearerDescription": "Voegt een Authorization: Bearer '' header toe aan elk verzoek.", "httpDestAuthBearerPlaceholder": "Uw API-sleutel of -token", "httpDestAuthBasicTitle": "Basis authenticatie", - "httpDestAuthBasicDescription": "Voegt een Authorizatie toe: Basis '' kop. Geef inloggegevens op als gebruikersnaam:wachtwoord.", + "httpDestAuthBasicDescription": "Voegt een Authorization: Basic '' header toe. Verstrek inloggegevens als gebruikersnaam:wachtwoord.", "httpDestAuthBasicPlaceholder": "Gebruikersnaam:wachtwoord", "httpDestAuthCustomTitle": "Aangepaste koptekst", "httpDestAuthCustomDescription": "Specificeer een aangepaste HTTP header naam en waarde voor authenticatie (bijv. X-API-Key).", diff --git a/messages/pl-PL.json b/messages/pl-PL.json index efd10b5e5..88aebc81d 100644 --- a/messages/pl-PL.json +++ b/messages/pl-PL.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Klucz zaopatrzenia zaktualizowany", "provisioningKeysUpdatedDescription": "Twoje zmiany zostały zapisane.", "provisioningKeysBannerTitle": "Klucze Zaopatrzenia witryny", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Wygeneruj klucz provisioning i użyj go z konektorem Newt do automatycznego tworzenia witryn przy pierwszym uruchomieniu - nie ma potrzeby konfigurowania oddzielnych poświadczeń dla każdej witryny.", "provisioningKeysBannerButtonText": "Dowiedz się więcej", "pendingSitesBannerTitle": "Witryny oczekujące", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Witryny, które łączą się za pomocą klucza provisioning, pojawią się tutaj do przeglądu.", "pendingSitesBannerButtonText": "Dowiedz się więcej", "apiKeysSettings": "Ustawienia {apiKeyName}", "userTitle": "Zarządzaj wszystkimi użytkownikami", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Wprowadź prawidłowy numer portu", "targetErrorNoSite": "Nie wybrano witryny", "targetErrorNoSiteDescription": "Wybierz witrynę docelową", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Cele wyczyszczone", + "targetTargetsClearedDescription": "Wszystkie cele zostały usunięte z tego zasobu", "targetCreated": "Cel utworzony", "targetCreatedDescription": "Cel został utworzony pomyślnie", "targetErrorCreate": "Nie udało się utworzyć celu", @@ -2348,7 +2348,7 @@ "description": "Cechy przedsiębiorstw, 50 użytkowników, 50 obiektów i wsparcie priorytetowe." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Tylko do użytku osobistego (darmowa licencja - bez płatności)", "buttons": { "continueToCheckout": "Przejdź do zamówienia" }, @@ -2609,9 +2609,9 @@ "machineClients": "Klienci maszyn", "install": "Zainstaluj", "run": "Uruchom", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Plik środowiska", + "serviceFile": "Plik serwisu", + "enableAndStart": "Włącz i Uruchom", "clientNameDescription": "Wyświetlana nazwa klienta, która może zostać zmieniona później.", "clientAddress": "Adres klienta (Zaawansowany)", "setupFailedToFetchSubnet": "Nie udało się pobrać domyślnej podsieci", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Brak uwierzytelniania", "httpDestAuthNoneDescription": "Wysyła żądania bez nagłówka autoryzacji.", "httpDestAuthBearerTitle": "Token Bearer", - "httpDestAuthBearerDescription": "Dodaje autoryzację: nagłówek Bearer '' do każdego żądania.", + "httpDestAuthBearerDescription": "Dodaje nagłówek Authorization: Bearer '' do każdego żądania.", "httpDestAuthBearerPlaceholder": "Twój klucz API lub token", "httpDestAuthBasicTitle": "Podstawowa Autoryzacja", - "httpDestAuthBasicDescription": "Dodaje Autoryzacja: Nagłówek Basic '' . Podaj poświadczenia jako nazwę użytkownika: hasło.", + "httpDestAuthBasicDescription": "Dodaje nagłówek Authorization: Basic ''. Podaj poświadczenia w formacie użytkownik:hasło.", "httpDestAuthBasicPlaceholder": "Nazwa użytkownika:hasło", "httpDestAuthCustomTitle": "Niestandardowy nagłówek", "httpDestAuthCustomDescription": "Określ niestandardową nazwę nagłówka HTTP i wartość dla uwierzytelniania (np. X-API-Key).", diff --git a/messages/pt-PT.json b/messages/pt-PT.json index a49285607..32ca8e34d 100644 --- a/messages/pt-PT.json +++ b/messages/pt-PT.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Chave de provisionamento atualizada", "provisioningKeysUpdatedDescription": "Suas alterações foram salvas.", "provisioningKeysBannerTitle": "Chaves de provisionamento do site", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Gere uma chave de provisionamento e use-a com o conector Newt para criar sites automaticamente na primeira inicialização - sem necessidade de configurar credenciais separadas para cada site.", "provisioningKeysBannerButtonText": "Saiba mais", "pendingSitesBannerTitle": "Sites pendentes", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Sites que se conectam usando uma chave de provisionamento aparecem aqui para revisão.", "pendingSitesBannerButtonText": "Saiba mais", "apiKeysSettings": "Configurações de {apiKeyName}", "userTitle": "Gerir Todos os Utilizadores", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Por favor, digite um número de porta válido", "targetErrorNoSite": "Nenhum site selecionado", "targetErrorNoSiteDescription": "Selecione um site para o destino", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Alvos limpos", + "targetTargetsClearedDescription": "Todos os alvos foram removidos deste recurso", "targetCreated": "Destino criado", "targetCreatedDescription": "O alvo foi criado com sucesso", "targetErrorCreate": "Falha ao criar destino", @@ -2348,7 +2348,7 @@ "description": "Recursos de empresa, 50 usuários, 50 sites e apoio prioritário." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Uso pessoal apenas (licença gratuita - sem checkout)", "buttons": { "continueToCheckout": "Continuar com checkout" }, @@ -2609,9 +2609,9 @@ "machineClients": "Clientes de máquina", "install": "Instale", "run": "Executar", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Arquivo de Ambiente", + "serviceFile": "Arquivo de Serviço", + "enableAndStart": "Ativar e Iniciar", "clientNameDescription": "O nome de exibição do cliente que pode ser alterado mais tarde.", "clientAddress": "Endereço do Cliente (Avançado)", "setupFailedToFetchSubnet": "Falha ao buscar a subrede padrão", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Sem Autenticação", "httpDestAuthNoneDescription": "Envia pedidos sem um cabeçalho de autorização.", "httpDestAuthBearerTitle": "Token do portador", - "httpDestAuthBearerDescription": "Adiciona uma autorização: Bearer '' header a cada requisição.", + "httpDestAuthBearerDescription": "Adiciona um cabeçalho Authorization: Bearer '' a cada solicitação.", "httpDestAuthBearerPlaceholder": "Sua chave de API ou token", "httpDestAuthBasicTitle": "Autenticação básica", - "httpDestAuthBasicDescription": "Adiciona uma Autorização: cabeçalho '' básico. Forneça credenciais como nome de usuário:senha.", + "httpDestAuthBasicDescription": "Adiciona um cabeçalho Authorization: Basic ''. Forneça as credenciais como username:password.", "httpDestAuthBasicPlaceholder": "Usuário:password", "httpDestAuthCustomTitle": "Cabeçalho personalizado", "httpDestAuthCustomDescription": "Especifique um nome e valor de cabeçalho HTTP personalizado para autenticação (por exemplo, X-API-Key).", diff --git a/messages/ru-RU.json b/messages/ru-RU.json index 9fde8085b..1e9ad7d2e 100644 --- a/messages/ru-RU.json +++ b/messages/ru-RU.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Ключ подготовки обновлен", "provisioningKeysUpdatedDescription": "Ваши изменения были сохранены.", "provisioningKeysBannerTitle": "Ключи подготовки сайта", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Создайте ключ настройки и используйте его с соединителем Newt для автоматического создания сайтов при первом запуске — нет необходимости настраивать отдельные учетные данные для каждого сайта.", "provisioningKeysBannerButtonText": "Узнать больше", "pendingSitesBannerTitle": "Ожидающие сайты", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Сайты, подключающиеся с помощью ключа настройки, отображаются здесь для проверки.", "pendingSitesBannerButtonText": "Узнать больше", "apiKeysSettings": "Настройки {apiKeyName}", "userTitle": "Управление всеми пользователями", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Пожалуйста, введите правильный номер порта", "targetErrorNoSite": "Сайт не выбран", "targetErrorNoSiteDescription": "Пожалуйста, выберите сайт для цели", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Цели очищены", + "targetTargetsClearedDescription": "Все цели удалены из этого ресурса", "targetCreated": "Цель создана", "targetCreatedDescription": "Цель была успешно создана", "targetErrorCreate": "Не удалось создать цель", @@ -2348,7 +2348,7 @@ "description": "Функции предприятия, 50 пользователей, 50 сайтов, а также приоритетная поддержка." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Только для личного использования (бесплатная лицензия - без оформления на кассе)", "buttons": { "continueToCheckout": "Продолжить оформление заказа" }, @@ -2609,9 +2609,9 @@ "machineClients": "Машинные клиенты", "install": "Установить", "run": "Запустить", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Файл окружения", + "serviceFile": "Сервисный файл", + "enableAndStart": "Включить и запустить", "clientNameDescription": "Отображаемое имя клиента, которое может быть изменено позже.", "clientAddress": "Адрес клиента (Дополнительно)", "setupFailedToFetchSubnet": "Не удалось получить подсеть по умолчанию", @@ -2853,7 +2853,7 @@ "httpDestAuthBearerDescription": "Добавляет заголовок Authorization: Bearer '' к каждому запросу.", "httpDestAuthBearerPlaceholder": "Ваш ключ API или токен", "httpDestAuthBasicTitle": "Базовая авторизация", - "httpDestAuthBasicDescription": "Добавляет Authorization: Basic '' header. Предоставьте учетные данные в качестве имени пользователя:password.", + "httpDestAuthBasicDescription": "Добавляет заголовок Authorization: Basic ''. Укажите учетные данные в формате username:password.", "httpDestAuthBasicPlaceholder": "имя пользователя:пароль", "httpDestAuthCustomTitle": "Пользовательский заголовок", "httpDestAuthCustomDescription": "Укажите пользовательское имя заголовка HTTP и значение для аутентификации (например, X-API-Key).", diff --git a/messages/tr-TR.json b/messages/tr-TR.json index f0bd3bc32..ee14bc2d9 100644 --- a/messages/tr-TR.json +++ b/messages/tr-TR.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "Tedarik anahtarı güncellendi", "provisioningKeysUpdatedDescription": "Değişiklikleriniz kaydedildi.", "provisioningKeysBannerTitle": "Site Tedarik Anahtarları", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "Bir sağlama anahtarı oluşturun ve ilk başlangıçta siteleri otomatik olarak oluşturmak için Newt bağlayıcısını kullanın - her site için ayrı kimlik bilgileri ayarlamaya gerek yok.", "provisioningKeysBannerButtonText": "Daha fazla bilgi", "pendingSitesBannerTitle": "Bekleyen Siteler", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "Bir sağlama anahtarı kullanarak bağlanan siteler, inceleme için burada görünür.", "pendingSitesBannerButtonText": "Daha fazla bilgi", "apiKeysSettings": "{apiKeyName} Ayarları", "userTitle": "Tüm Kullanıcıları Yönet", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "Lütfen geçerli bir port numarası girin", "targetErrorNoSite": "Hiçbir site seçili değil", "targetErrorNoSiteDescription": "Lütfen hedef için bir site seçin", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "Hedefler temizlendi", + "targetTargetsClearedDescription": "Bu kaynaktan tüm hedefler kaldırıldı", "targetCreated": "Hedef oluşturuldu", "targetCreatedDescription": "Hedef başarıyla oluşturuldu", "targetErrorCreate": "Hedef oluşturma başarısız oldu", @@ -2348,7 +2348,7 @@ "description": "Kurumsal özellikler, 50 kullanıcı, 50 site ve öncelikli destek." } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "Kişisel kullanım için (ücretsiz lisans - ödeme yok)", "buttons": { "continueToCheckout": "Ödemeye Devam Et" }, @@ -2609,9 +2609,9 @@ "machineClients": "Makine İstemcileri", "install": "Yükle", "run": "Çalıştır", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "Ortam Dosyası", + "serviceFile": "Servis Dosyası", + "enableAndStart": "Etkinleştir ve Başlat", "clientNameDescription": "Daha sonra değiştirilebilecek istemcinin görünen adı.", "clientAddress": "İstemci Adresi (Gelişmiş)", "setupFailedToFetchSubnet": "Varsayılan alt ağ alınamadı", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "Kimlik Doğrulama Yok", "httpDestAuthNoneDescription": "Yetkilendirme başlığı olmadan istekler gönderir.", "httpDestAuthBearerTitle": "Taşıyıcı Jetonu", - "httpDestAuthBearerDescription": "Her isteğe bir Yetkilendirme: Taşıyıcı '' başlığı ekler.", + "httpDestAuthBearerDescription": "Her isteğe bir Yetkilendirme: Taşıyıcı '' üst bilgisi ekler.", "httpDestAuthBearerPlaceholder": "API anahtarınız veya jetonunuz", "httpDestAuthBasicTitle": "Temel Kimlik Doğrulama", - "httpDestAuthBasicDescription": "Authorization: Temel '' başlığı ekler. Yetkilendirmeleri kullanıcı adı:şifre olarak sağlayın.", + "httpDestAuthBasicDescription": "Bir Yetkilendirme: Temel '' üst bilgisi ekler. Kimlik bilgilerini kullanıcı adı:şifre olarak sağlayın.", "httpDestAuthBasicPlaceholder": "kullanıcı adı:şifre", "httpDestAuthCustomTitle": "Özel Başlık", "httpDestAuthCustomDescription": "Kimlik doğrulama için özel bir HTTP başlık adı ve değer belirtin (örn. X-API-Key).", diff --git a/messages/zh-CN.json b/messages/zh-CN.json index f5af25854..0d21cda66 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -371,10 +371,10 @@ "provisioningKeysUpdated": "置备密钥已更新", "provisioningKeysUpdatedDescription": "您的更改已保存。", "provisioningKeysBannerTitle": "站点置备密钥", - "provisioningKeysBannerDescription": "Generate a provisioning key and use it with the Newt connector to automatically create sites on first startup - no need to set up separate credentials for each site.", + "provisioningKeysBannerDescription": "生成一个供应密钥,并将其与 Newt 连接器一起使用,以在首次启动时自动创建站点 - 无需为每个站点设置单独的凭据。", "provisioningKeysBannerButtonText": "了解更多", "pendingSitesBannerTitle": "待定站点", - "pendingSitesBannerDescription": "Sites that connect using a provisioning key appear here for review.", + "pendingSitesBannerDescription": "使用供应密钥连接的站点将在此显示以供审核。", "pendingSitesBannerButtonText": "了解更多", "apiKeysSettings": "{apiKeyName} 设置", "userTitle": "管理所有用户", @@ -624,8 +624,8 @@ "targetErrorInvalidPortDescription": "请输入有效的端口号", "targetErrorNoSite": "没有选择站点", "targetErrorNoSiteDescription": "请选择目标站点", - "targetTargetsCleared": "Targets cleared", - "targetTargetsClearedDescription": "All targets have been removed from this resource", + "targetTargetsCleared": "目标已清除", + "targetTargetsClearedDescription": "所有目标已从此资源中移除", "targetCreated": "目标已创建", "targetCreatedDescription": "目标已成功创建", "targetErrorCreate": "创建目标失败", @@ -2348,7 +2348,7 @@ "description": "企业特征、50个用户、50个站点和优先支持。" } }, - "personalUseOnly": "Personal use only (free license - no checkout)", + "personalUseOnly": "仅限个人使用(免费许可 - 无需结账)", "buttons": { "continueToCheckout": "继续签出" }, @@ -2609,9 +2609,9 @@ "machineClients": "机器客户端", "install": "安装", "run": "运行", - "envFile": "Environment File", - "serviceFile": "Service File", - "enableAndStart": "Enable and Start", + "envFile": "环境文件", + "serviceFile": "服务文件", + "enableAndStart": "启用并启动", "clientNameDescription": "可以稍后更改的客户端的显示名称。", "clientAddress": "客户端地址 (高级)", "setupFailedToFetchSubnet": "获取默认子网失败", @@ -2850,10 +2850,10 @@ "httpDestAuthNoneTitle": "无身份验证", "httpDestAuthNoneDescription": "在没有授权头的情况下发送请求。", "httpDestAuthBearerTitle": "持有者令牌", - "httpDestAuthBearerDescription": "添加授权:每个请求的标题为 ''。", + "httpDestAuthBearerDescription": "在每个请求中添加授权:Bearer “” 头。", "httpDestAuthBearerPlaceholder": "您的 API 密钥或令牌", "httpDestAuthBasicTitle": "基本认证", - "httpDestAuthBasicDescription": "添加授权:基本 '' 头。提供用户名:密码的凭据。", + "httpDestAuthBasicDescription": "添加一个Authorization: Basic \"<凭据>\" 标头。 以用户名:密码形式提供凭据。", "httpDestAuthBasicPlaceholder": "用户名:密码", "httpDestAuthCustomTitle": "自定义标题", "httpDestAuthCustomDescription": "指定自定义 HTTP 头名称和身份验证值 (例如,X-API 键)。", diff --git a/server/private/lib/logStreaming/LogStreamingManager.ts b/server/private/lib/logStreaming/LogStreamingManager.ts index 0067c0690..39eae031a 100644 --- a/server/private/lib/logStreaming/LogStreamingManager.ts +++ b/server/private/lib/logStreaming/LogStreamingManager.ts @@ -23,6 +23,8 @@ import { } from "@server/db"; import logger from "@server/logger"; import { and, eq, gt, desc, max, sql } from "drizzle-orm"; +import { decrypt } from "@server/lib/crypto"; +import config from "@server/lib/config"; import { LogType, LOG_TYPES, @@ -272,19 +274,20 @@ export class LogStreamingManager { return; } - // Parse config – skip destination if config is unparseable - let config: HttpConfig; + // Decrypt and parse config – skip destination if either step fails + let configFromDb: HttpConfig; try { - config = JSON.parse(dest.config) as HttpConfig; + const decryptedConfig = decrypt(dest.config, config.getRawConfig().server.secret!); + configFromDb = JSON.parse(decryptedConfig) as HttpConfig; } catch (err) { logger.error( - `LogStreamingManager: destination ${dest.destinationId} has invalid JSON config`, + `LogStreamingManager: destination ${dest.destinationId} has invalid or undecryptable config`, err ); return; } - const provider = this.createProvider(dest.type, config); + const provider = this.createProvider(dest.type, configFromDb); if (!provider) { logger.warn( `LogStreamingManager: unsupported destination type "${dest.type}" ` + diff --git a/server/private/routers/eventStreamingDestination/createEventStreamingDestination.ts b/server/private/routers/eventStreamingDestination/createEventStreamingDestination.ts index 623f2d9e0..bef7ba7e9 100644 --- a/server/private/routers/eventStreamingDestination/createEventStreamingDestination.ts +++ b/server/private/routers/eventStreamingDestination/createEventStreamingDestination.ts @@ -22,6 +22,8 @@ import createHttpError from "http-errors"; import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { OpenAPITags, registry } from "@server/openApi"; +import { encrypt } from "@server/lib/crypto"; +import config from "@server/lib/config"; const paramsSchema = z.strictObject({ orgId: z.string().nonempty() @@ -87,7 +89,10 @@ export async function createEventStreamingDestination( ); } - const { type, config, enabled } = parsedBody.data; + const { type, config: configToSet, enabled } = parsedBody.data; + + const key = config.getRawConfig().server.secret!; + const encryptedConfig = encrypt(configToSet, key); const now = Date.now(); @@ -96,7 +101,7 @@ export async function createEventStreamingDestination( .values({ orgId, type, - config, + config: encryptedConfig, enabled, createdAt: now, updatedAt: now, diff --git a/server/private/routers/eventStreamingDestination/listEventStreamingDestinations.ts b/server/private/routers/eventStreamingDestination/listEventStreamingDestinations.ts index b3f5ff149..ac3f14e62 100644 --- a/server/private/routers/eventStreamingDestination/listEventStreamingDestinations.ts +++ b/server/private/routers/eventStreamingDestination/listEventStreamingDestinations.ts @@ -22,6 +22,8 @@ import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { OpenAPITags, registry } from "@server/openApi"; import { eq, sql } from "drizzle-orm"; +import { decrypt } from "@server/lib/crypto"; +import config from "@server/lib/config"; const paramsSchema = z.strictObject({ orgId: z.string().nonempty() @@ -121,9 +123,22 @@ export async function listEventStreamingDestinations( .from(eventStreamingDestinations) .where(eq(eventStreamingDestinations.orgId, orgId)); + const key = config.getRawConfig().server.secret!; + const decryptedList = list.map((dest) => { + try { + return { ...dest, config: decrypt(dest.config, key) }; + } catch (err) { + logger.error( + `listEventStreamingDestinations: failed to decrypt config for destination ${dest.destinationId}`, + err + ); + return { ...dest, config: "" }; + } + }); + return response(res, { data: { - destinations: list, + destinations: decryptedList, pagination: { total: count, limit, diff --git a/server/private/routers/eventStreamingDestination/updateEventStreamingDestination.ts b/server/private/routers/eventStreamingDestination/updateEventStreamingDestination.ts index 3d3321824..24dc68aef 100644 --- a/server/private/routers/eventStreamingDestination/updateEventStreamingDestination.ts +++ b/server/private/routers/eventStreamingDestination/updateEventStreamingDestination.ts @@ -22,7 +22,8 @@ import logger from "@server/logger"; import { fromError } from "zod-validation-error"; import { OpenAPITags, registry } from "@server/openApi"; import { and, eq } from "drizzle-orm"; - +import { encrypt } from "@server/lib/crypto"; +import config from "@server/lib/config"; const paramsSchema = z .object({ @@ -110,14 +111,17 @@ export async function updateEventStreamingDestination( ); } - const { type, config, enabled, sendAccessLogs, sendActionLogs, sendConnectionLogs, sendRequestLogs } = parsedBody.data; + const { type, config: configToUpdate, enabled, sendAccessLogs, sendActionLogs, sendConnectionLogs, sendRequestLogs } = parsedBody.data; const updateData: Record = { updatedAt: Date.now() }; if (type !== undefined) updateData.type = type; - if (config !== undefined) updateData.config = config; + if (configToUpdate !== undefined) { + const key = config.getRawConfig().server.secret!; + updateData.config = encrypt(configToUpdate, key); + } if (enabled !== undefined) updateData.enabled = enabled; if (sendAccessLogs !== undefined) updateData.sendAccessLogs = sendAccessLogs; if (sendActionLogs !== undefined) updateData.sendActionLogs = sendActionLogs; diff --git a/server/routers/newt/registerNewt.ts b/server/routers/newt/registerNewt.ts index 954acca92..de68ab2de 100644 --- a/server/routers/newt/registerNewt.ts +++ b/server/routers/newt/registerNewt.ts @@ -27,7 +27,7 @@ import { build } from "@server/build"; import { usageService } from "@server/lib/billing/usageService"; import { FeatureId } from "@server/lib/billing"; import { INSPECT_MAX_BYTES } from "buffer"; -import { v } from "@faker-js/faker/dist/airline-Dz1uGqgJ"; +import { getNextAvailableClientSubnet } from "@server/lib/ip"; const bodySchema = z.object({ provisioningKey: z.string().nonempty(), @@ -152,6 +152,11 @@ export async function registerNewt( createHttpError(HttpCode.NOT_FOUND, "Organization not found") ); } + if (!org.subnet) { + return next( + createHttpError(HttpCode.INTERNAL_SERVER_ERROR, "Organization subnet not found") + ); + } // SaaS billing check if (build == "saas") { @@ -190,6 +195,20 @@ export async function registerNewt( let newSiteId: number | undefined; await db.transaction(async (trx) => { + + const newClientAddress = await getNextAvailableClientSubnet(orgId); + if (!newClientAddress) { + return next( + createHttpError( + HttpCode.INTERNAL_SERVER_ERROR, + "No available subnet found" + ) + ); + } + + let clientAddress = newClientAddress.split("/")[0]; + clientAddress = `${clientAddress}/${org.subnet!.split("/")[1]}`; // we want the block size of the whole org + // Create the site (type "newt", name = niceId) const [newSite] = await trx .insert(sites) @@ -197,6 +216,7 @@ export async function registerNewt( orgId, name: name || niceId, niceId, + address: clientAddress, type: "newt", dockerSocketEnabled: true, status: keyRecord.approveNewSites ? "approved" : "pending", diff --git a/src/app/[orgId]/settings/logs/connection/page.tsx b/src/app/[orgId]/settings/logs/connection/page.tsx index dff42faac..e15708f8e 100644 --- a/src/app/[orgId]/settings/logs/connection/page.tsx +++ b/src/app/[orgId]/settings/logs/connection/page.tsx @@ -491,7 +491,7 @@ export default function ConnectionLogsPage() { ); }, cell: ({ row }) => { - const clientType = row.original.clientType === "olm" ? "machine" : "user"; + const clientType = row.original.userId ? "user" : "machine"; if (row.original.clientName && row.original.clientNiceId) { return (