feat: load plugin frontends at runtime and remove plugin ids from the shell

This commit is contained in:
LukeGus committed 2026-09-22 20:15:52 -05:00
1 parent 49f0286a14
commit e88d5a52e3
721 files changed
+54265 -44416

No files matched your search

+60 -1
View File
@@ -1 +1,60 @@
{}
{
"networkGraph": {
"addHost": "Add Host",
"addGroup": "Add Group",
"addLink": "Add Link",
"zoomIn": "Zoom In",
"zoomOut": "Zoom Out",
"resetView": "Reset View",
"selectHost": "Select Host",
"chooseHost": "Choose a host...",
"parentGroup": "Parent Group",
"noGroup": "No Group",
"groupName": "Group Name",
"color": "Color",
"source": "Source",
"target": "Target",
"moveToGroup": "Move to Group",
"selectGroup": "Select group...",
"addConnection": "Add Connection",
"hostDetails": "Host Details",
"removeFromGroup": "Remove from Group",
"addHostHere": "Add Host Here",
"editGroup": "Edit Group",
"delete": "Delete",
"add": "Add",
"create": "Create",
"move": "Move",
"connect": "Connect",
"createGroup": "Create Group",
"selectSourcePlaceholder": "Select Source...",
"selectTargetPlaceholder": "Select Target...",
"invalidFile": "Invalid File",
"hostAlreadyExists": "Host is already in the topology",
"connectionExists": "Connection already exists",
"unknown": "Unknown",
"name": "Name",
"ip": "IP",
"status": "Status",
"failedToAddNode": "Failed to add node",
"sourceDifferentFromTarget": "Source and target must be different",
"exportJSON": "Export JSON",
"importJSON": "Import JSON",
"terminal": "Terminal",
"fileManager": "File Manager",
"tunnel": "Tunnel",
"docker": "Docker",
"serverStats": "Host Metrics",
"hostMetrics": "Host Metrics",
"noNodes": "No nodes yet"
},
"nav": {
"networkGraph": "Network Graph"
},
"dashboard": {
"networkGraph": "Network Graph"
},
"dashboardTab": {
"nodes": "{{count}} nodes"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Voeg gasheer by",
"addGroup": "Voeg Groep by",
"addLink": "Voeg skakel by",
"zoomIn": "Inzoem",
"zoomOut": "Uitzoom",
"resetView": "Herstel aansig",
"selectHost": "Kies gasheer",
"chooseHost": "Kies 'n gasheer...",
"parentGroup": "Ouergroep",
"noGroup": "Geen Groep",
"groupName": "Groepnaam",
"color": "Kleur",
"source": "Bron",
"target": "Teiken",
"moveToGroup": "Skuif na Groep",
"selectGroup": "Kies groep...",
"addConnection": "Voeg verbinding by",
"hostDetails": "Gasheerbesonderhede",
"removeFromGroup": "Verwyder uit Groep",
"addHostHere": "Voeg gasheer hier by",
"editGroup": "Wysig Groep",
"delete": "Vee uit",
"add": "Voeg by",
"create": "Skep",
"move": "Beweeg",
"connect": "Verbind",
"createGroup": "Skep Groep",
"selectSourcePlaceholder": "Kies Bron...",
"selectTargetPlaceholder": "Kies Teiken...",
"invalidFile": "Ongeldige lêer",
"hostAlreadyExists": "Gasheer is reeds in die topologie",
"connectionExists": "Verbinding bestaan reeds",
"unknown": "Onbekend",
"name": "Naam",
"ip": "IP-adres",
"status": "Status",
"failedToAddNode": "Kon nie nodus byvoeg nie",
"sourceDifferentFromTarget": "Bron en teiken moet verskillend wees",
"exportJSON": "Voer JSON uit",
"importJSON": "Voer JSON in",
"terminal": "Terminaal",
"fileManager": "Lêerbestuurder",
"tunnel": "Tonnel",
"docker": "Docker",
"serverStats": "Gasheermetrieke",
"hostMetrics": "Gasheermetrieke",
"noNodes": "Geen nodusse nog nie"
},
"nav": {
"networkGraph": "Netwerkgrafiek"
},
"dashboard": {
"networkGraph": "Netwerkgrafiek"
},
"dashboardTab": {
"nodes": "{{count}} nodusse"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "إضافة مضيف",
"addGroup": "إضافة مجموعة",
"addLink": "إضافة رابط",
"zoomIn": "تكبير",
"zoomOut": "تصغير",
"resetView": "إعادة ضبط العرض",
"selectHost": "تحديد مضيف",
"chooseHost": "اختر مضيفًا...",
"parentGroup": "المجموعة الأم",
"noGroup": "بدون مجموعة",
"groupName": "اسم المجموعة",
"color": "اللون",
"source": "المصدر",
"target": "الهدف",
"moveToGroup": "نقل إلى مجموعة",
"selectGroup": "تحديد مجموعة...",
"addConnection": "إضافة اتصال",
"hostDetails": "تفاصيل المضيف",
"removeFromGroup": "إزالة من المجموعة",
"addHostHere": "إضافة مضيف هنا",
"editGroup": "تعديل المجموعة",
"delete": "حذف",
"add": "إضافة",
"create": "إنشاء",
"move": "نقل",
"connect": "اتصل",
"createGroup": "إنشاء مجموعة",
"selectSourcePlaceholder": "تحديد المصدر...",
"selectTargetPlaceholder": "تحديد الهدف...",
"invalidFile": "ملف غير صالح",
"hostAlreadyExists": "المضيف موجود بالفعل في الطوبولوجيا",
"connectionExists": "الاتصال موجود بالفعل",
"unknown": "غير معروف",
"name": "الاسم",
"ip": "IP",
"status": "الحالة",
"failedToAddNode": "فشل في إضافة العقدة",
"sourceDifferentFromTarget": "يجب أن يكون المصدر والهدف مختلفين",
"exportJSON": "تصدير JSON",
"importJSON": "استيراد JSON",
"terminal": "الطرفية",
"fileManager": "مدير الملفات",
"tunnel": "نفق",
"docker": "Docker",
"serverStats": "مقاييس المضيف",
"hostMetrics": "مقاييس المضيف",
"noNodes": "لا توجد عُقد بعد"
},
"nav": {
"networkGraph": "رسم بياني للشبكة"
},
"dashboard": {
"networkGraph": "الرسم البياني للشبكة"
},
"dashboardTab": {
"nodes": "{{count}} عقدة"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Добавяне на хост",
"addGroup": "Добавяне на група",
"addLink": "Добавяне на връзка",
"zoomIn": "Увеличаване на мащаба",
"zoomOut": "Намаляване на мащаба",
"resetView": "Нулиране на изгледа",
"selectHost": "Изберете хост",
"chooseHost": "Изберете хост...",
"parentGroup": "Родителска група",
"noGroup": "Няма група",
"groupName": "Име на групата",
"color": "Цвят",
"source": "Източник",
"target": "Цел",
"moveToGroup": "Преместване в група",
"selectGroup": "Изберете група...",
"addConnection": "Добавяне на връзка",
"hostDetails": "Детайли за хоста",
"removeFromGroup": "Премахване от групата",
"addHostHere": "Добавете хост тук",
"editGroup": "Редактиране на група",
"delete": "Изтриване",
"add": "Добавяне",
"create": "Създаване",
"move": "Преместване",
"connect": "Свържете се",
"createGroup": "Създаване на група",
"selectSourcePlaceholder": "Изберете източник...",
"selectTargetPlaceholder": "Изберете цел...",
"invalidFile": "Невалиден файл",
"hostAlreadyExists": "Хостът вече е в топологията",
"connectionExists": "Връзката вече съществува",
"unknown": "Неизвестен",
"name": "Име",
"ip": "ИП",
"status": "Статус",
"failedToAddNode": "Добавянето на възел не бе успешно",
"sourceDifferentFromTarget": "Източникът и целта трябва да са различни",
"exportJSON": "Експортиране на JSON",
"importJSON": "Импортиране на JSON",
"terminal": "Терминал",
"fileManager": "Файлов мениджър",
"tunnel": "Тунел",
"docker": "Докер",
"serverStats": "Метрики на хоста",
"hostMetrics": "Метрики на хоста",
"noNodes": "Все още няма възли"
},
"nav": {
"networkGraph": "Мрежова графика"
},
"dashboard": {
"networkGraph": "Мрежова графика"
},
"dashboardTab": {
"nodes": "{{count}} възли"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "হোস্ট যোগ করুন",
"addGroup": "গ্রুপ যোগ করুন",
"addLink": "লিঙ্ক যোগ করুন",
"zoomIn": "জুম ইন",
"zoomOut": "জুম আউট",
"resetView": "দৃশ্য রিসেট করুন",
"selectHost": "হোস্ট নির্বাচন করুন",
"chooseHost": "একজন হোস্ট বেছে নিন...",
"parentGroup": "অভিভাবক গোষ্ঠী",
"noGroup": "কোন গ্রুপ নেই",
"groupName": "গ্রুপের নাম",
"color": "রঙ",
"source": "উৎস",
"target": "লক্ষ্য",
"moveToGroup": "গ্রুপে যান",
"selectGroup": "দল নির্বাচন করুন...",
"addConnection": "সংযোগ যোগ করুন",
"hostDetails": "হোস্টের বিবরণ",
"removeFromGroup": "গ্রুপ থেকে অপসারণ করুন",
"addHostHere": "এখানে হোস্ট যোগ করুন",
"editGroup": "সম্পাদনা গ্রুপ",
"delete": "মুছে ফেলুন",
"add": "যোগ করুন",
"create": "তৈরি করুন",
"move": "স্থানান্তর",
"connect": "সংযোগ করুন",
"createGroup": "গ্রুপ তৈরি করুন",
"selectSourcePlaceholder": "উৎস নির্বাচন করুন...",
"selectTargetPlaceholder": "লক্ষ্য নির্বাচন করুন...",
"invalidFile": "অবৈধ ফাইল",
"hostAlreadyExists": "হোস্ট ইতিমধ্যে টপোলজিতে আছে",
"connectionExists": "সংযোগটি ইতিমধ্যেই বিদ্যমান আছে",
"unknown": "অজানা",
"name": "নাম",
"ip": "আইপি",
"status": "অবস্থা",
"failedToAddNode": "নোড যোগ করতে ব্যর্থ হয়েছে",
"sourceDifferentFromTarget": "উৎস এবং লক্ষ্য অবশ্যই ভিন্ন হতে হবে",
"exportJSON": "JSON রপ্তানি করুন",
"importJSON": "JSON আমদানি করুন",
"terminal": "টার্মিনাল",
"fileManager": "ফাইল ম্যানেজার",
"tunnel": "টানেল",
"docker": "ডকার",
"serverStats": "হোস্ট মেট্রিক্স",
"hostMetrics": "হোস্ট মেট্রিক্স",
"noNodes": "এখনো কোনো নোড নেই"
},
"nav": {
"networkGraph": "নেটওয়ার্ক গ্রাফ"
},
"dashboard": {
"networkGraph": "নেটওয়ার্ক গ্রাফ"
},
"dashboardTab": {
"nodes": "{{count}} নোড"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Afegeix amfitrió",
"addGroup": "Afegeix un grup",
"addLink": "Afegeix un enllaç",
"zoomIn": "Ampliar zoom",
"zoomOut": "Allunyar",
"resetView": "Restableix la vista",
"selectHost": "Selecciona l'amfitrió",
"chooseHost": "Trieu un amfitrió...",
"parentGroup": "Grup de pares",
"noGroup": "Sense grup",
"groupName": "Nom del grup",
"color": "Color",
"source": "Font",
"target": "Objectiu",
"moveToGroup": "Moure al grup",
"selectGroup": "Selecciona el grup...",
"addConnection": "Afegeix una connexió",
"hostDetails": "Detalls de l'amfitrió",
"removeFromGroup": "Elimina del grup",
"addHostHere": "Afegeix l'amfitrió aquí",
"editGroup": "Edita el grup",
"delete": "Suprimeix",
"add": "Afegeix",
"create": "Crea",
"move": "Moure",
"connect": "Connecta",
"createGroup": "Crea un grup",
"selectSourcePlaceholder": "Selecciona la font...",
"selectTargetPlaceholder": "Selecciona l'objectiu...",
"invalidFile": "Fitxer no vàlid",
"hostAlreadyExists": "L'amfitrió ja és a la topologia",
"connectionExists": "La connexió ja existeix",
"unknown": "Desconegut",
"name": "Nom",
"ip": "IP",
"status": "Estat",
"failedToAddNode": "No s'ha pogut afegir el node",
"sourceDifferentFromTarget": "La font i la destinació han de ser diferents",
"exportJSON": "Exporta JSON",
"importJSON": "Importa JSON",
"terminal": "Terminal",
"fileManager": "Gestor de fitxers",
"tunnel": "Túnel",
"docker": "Docker",
"serverStats": "Mètriques de l'amfitrió",
"hostMetrics": "Mètriques de l'amfitrió",
"noNodes": "Encara no hi ha nodes"
},
"nav": {
"networkGraph": "Gràfic de xarxa"
},
"dashboard": {
"networkGraph": "Gràfic de xarxa"
},
"dashboardTab": {
"nodes": "nodes {{count}}"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Přidat hostitele",
"addGroup": "Přidat skupinu",
"addLink": "Přidat odkaz",
"zoomIn": "Přiblížit",
"zoomOut": "Oddálit",
"resetView": "Obnovit zobrazení",
"selectHost": "Vyberte hostitele",
"chooseHost": "Vyberte si hostitele...",
"parentGroup": "Nadřazená skupina",
"noGroup": "Žádná skupina",
"groupName": "Název skupiny",
"color": "Barva",
"source": "Zdroj",
"target": "Cíl",
"moveToGroup": "Přesunout do skupiny",
"selectGroup": "Vyberte skupinu...",
"addConnection": "Přidat připojení",
"hostDetails": "Podrobnosti o hostiteli",
"removeFromGroup": "Odebrat ze skupiny",
"addHostHere": "Přidat hostitele zde",
"editGroup": "Upravit skupinu",
"delete": "Vymazat",
"add": "Přidat",
"create": "Vytvořit",
"move": "Pohyb",
"connect": "Připojit",
"createGroup": "Vytvořit skupinu",
"selectSourcePlaceholder": "Vyberte zdroj...",
"selectTargetPlaceholder": "Vyberte cíl...",
"invalidFile": "Neplatný soubor",
"hostAlreadyExists": "Hostitel je již v topologii",
"connectionExists": "Připojení již existuje",
"unknown": "Neznámý",
"name": "Jméno",
"ip": "IP adresa",
"status": "Postavení",
"failedToAddNode": "Nepodařilo se přidat uzel",
"sourceDifferentFromTarget": "Zdroj a cíl se musí lišit",
"exportJSON": "Exportovat JSON",
"importJSON": "Importovat JSON",
"terminal": "Terminál",
"fileManager": "Správce souborů",
"tunnel": "Tunel",
"docker": "Přístavní dělník",
"serverStats": "Metriky hostitele",
"hostMetrics": "Metriky hostitele",
"noNodes": "Zatím žádné uzly"
},
"nav": {
"networkGraph": "Síťový graf"
},
"dashboard": {
"networkGraph": "Síťový graf"
},
"dashboardTab": {
"nodes": "{{count}} uzlů"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Tilføj vært",
"addGroup": "Tilføj gruppe",
"addLink": "Tilføj link",
"zoomIn": "Zoom ind",
"zoomOut": "Zoom ud",
"resetView": "Nulstil visning",
"selectHost": "Vælg vært",
"chooseHost": "Vælg en vært...",
"parentGroup": "Forældregruppe",
"noGroup": "Ingen gruppe",
"groupName": "Gruppenavn",
"color": "Farve",
"source": "Kilde",
"target": "Mål",
"moveToGroup": "Flyt til gruppe",
"selectGroup": "Vælg gruppe...",
"addConnection": "Tilføj forbindelse",
"hostDetails": "Værtsoplysninger",
"removeFromGroup": "Fjern fra gruppe",
"addHostHere": "Tilføj vært her",
"editGroup": "Rediger gruppe",
"delete": "Slet",
"add": "Tilføje",
"create": "Skabe",
"move": "Flytte",
"connect": "Forbinde",
"createGroup": "Opret gruppe",
"selectSourcePlaceholder": "Vælg kilde...",
"selectTargetPlaceholder": "Vælg mål...",
"invalidFile": "Ugyldig fil",
"hostAlreadyExists": "Værten er allerede i topologien",
"connectionExists": "Forbindelsen findes allerede",
"unknown": "Ukendt",
"name": "Navn",
"ip": "IP-adresse",
"status": "Status",
"failedToAddNode": "Kunne ikke tilføje node",
"sourceDifferentFromTarget": "Kilde og mål skal være forskellige",
"exportJSON": "Eksportér JSON",
"importJSON": "Importér JSON",
"terminal": "Terminal",
"fileManager": "Filhåndtering",
"tunnel": "Tunnel",
"docker": "Docker",
"serverStats": "Værtsmålinger",
"hostMetrics": "Værtsmålinger",
"noNodes": "Ingen noder endnu"
},
"nav": {
"networkGraph": "Netværksgraf"
},
"dashboard": {
"networkGraph": "Netværksgraf"
},
"dashboardTab": {
"nodes": "{{count}} noder"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Host hinzufügen",
"addGroup": "Gruppe hinzufügen",
"addLink": "Link hinzufügen",
"zoomIn": "Vergrößern",
"zoomOut": "Verkleinern",
"resetView": "Ansicht zurücksetzen",
"selectHost": "Host auswählen",
"chooseHost": "Host auswählen...",
"parentGroup": "Übergeordnete Gruppe",
"noGroup": "Keine Gruppe",
"groupName": "Gruppenname",
"color": "Farbe",
"source": "Quelle",
"target": "Ziel",
"moveToGroup": "In Gruppe verschieben",
"selectGroup": "Gruppe auswählen...",
"addConnection": "Verbindung hinzufügen",
"hostDetails": "Host-Details",
"removeFromGroup": "Aus Gruppe entfernen",
"addHostHere": "Host hier hinzufügen",
"editGroup": "Gruppe bearbeiten",
"delete": "Löschen",
"add": "Hinzufügen",
"create": "Erstellen",
"move": "Verschieben",
"connect": "Verbinden",
"createGroup": "Gruppe erstellen",
"selectSourcePlaceholder": "Quelle auswählen...",
"selectTargetPlaceholder": "Ziel auswählen...",
"invalidFile": "Ungültige Datei",
"hostAlreadyExists": "Host ist bereits in der Topologie",
"connectionExists": "Verbindung ist bereits vorhanden",
"unknown": "Unbekannt",
"name": "Name",
"ip": "IP",
"status": "Status",
"failedToAddNode": "Knoten konnte nicht hinzugefügt werden",
"sourceDifferentFromTarget": "Quelle und Ziel müssen unterschiedlich sein",
"exportJSON": "JSON exportieren",
"importJSON": "JSON importieren",
"terminal": "Terminal",
"fileManager": "Dateimanager",
"tunnel": "Tunnel",
"docker": "Docker",
"serverStats": "Host-Metriken",
"hostMetrics": "Host-Metriken",
"noNodes": "Noch keine Knoten"
},
"nav": {
"networkGraph": "Netzwerkdiagramm"
},
"dashboard": {
"networkGraph": "Netzwerkdiagramm"
},
"dashboardTab": {
"nodes": "{{count}} Knoten"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Προσθήκη κεντρικού υπολογιστή",
"addGroup": "Προσθήκη ομάδας",
"addLink": "Προσθήκη συνδέσμου",
"zoomIn": "Μεγέθυνση",
"zoomOut": "Σμίκρυνση",
"resetView": "Επαναφορά προβολής",
"selectHost": "Επιλέξτε κεντρικό υπολογιστή",
"chooseHost": "Επιλέξτε έναν οικοδεσπότη...",
"parentGroup": "Γονική ομάδα",
"noGroup": "Καμία ομάδα",
"groupName": "Όνομα ομάδας",
"color": "Χρώμα",
"source": "Πηγή",
"target": "Στόχος",
"moveToGroup": "Μετακίνηση σε ομάδα",
"selectGroup": "Επιλογή ομάδας...",
"addConnection": "Προσθήκη σύνδεσης",
"hostDetails": "Στοιχεία κεντρικού υπολογιστή",
"removeFromGroup": "Αφαίρεση από την ομάδα",
"addHostHere": "Προσθήκη κεντρικού υπολογιστή εδώ",
"editGroup": "Επεξεργασία ομάδας",
"delete": "Διαγράφω",
"add": "Προσθέτω",
"create": "Δημιουργώ",
"move": "Κίνηση",
"connect": "Συνδέω",
"createGroup": "Δημιουργία ομάδας",
"selectSourcePlaceholder": "Επιλογή Πηγής...",
"selectTargetPlaceholder": "Επιλογή Στόχου...",
"invalidFile": "Μη έγκυρο αρχείο",
"hostAlreadyExists": "Ο κεντρικός υπολογιστής βρίσκεται ήδη στην τοπολογία",
"connectionExists": "Η σύνδεση υπάρχει ήδη",
"unknown": "Αγνωστος",
"name": "Ονομα",
"ip": "Πνευματική Ιδιοκτησία",
"status": "Κατάσταση",
"failedToAddNode": "Αποτυχία προσθήκης κόμβου",
"sourceDifferentFromTarget": "Η πηγή και ο στόχος πρέπει να είναι διαφορετικοί",
"exportJSON": "Εξαγωγή JSON",
"importJSON": "Εισαγωγή JSON",
"terminal": "Τερματικό",
"fileManager": "Διαχειριστής αρχείων",
"tunnel": "Σήραγγα",
"docker": "Λιμενεργάτης",
"serverStats": "Μετρήσεις κεντρικού υπολογιστή",
"hostMetrics": "Μετρήσεις κεντρικού υπολογιστή",
"noNodes": "Δεν υπάρχουν ακόμη κόμβοι"
},
"nav": {
"networkGraph": "Γράφημα δικτύου"
},
"dashboard": {
"networkGraph": "Γράφημα δικτύου"
},
"dashboardTab": {
"nodes": "{{count}} κόμβοι"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Añadir host",
"addGroup": "Añadir grupo",
"addLink": "Añadir enlace",
"zoomIn": "Acercar",
"zoomOut": "Alejar",
"resetView": "Restablecer vista",
"selectHost": "Seleccionar host",
"chooseHost": "Elegir un host...",
"parentGroup": "Grupo padre",
"noGroup": "Sin grupo",
"groupName": "Nombre del grupo",
"color": "Color",
"source": "Origen",
"target": "Destino",
"moveToGroup": "Mover al grupo",
"selectGroup": "Seleccionar grupo...",
"addConnection": "Añadir conexión",
"hostDetails": "Detalles del host",
"removeFromGroup": "Quitar del grupo",
"addHostHere": "Añadir host aquí",
"editGroup": "Editar grupo",
"delete": "Eliminar",
"add": "Añadir",
"create": "Crear",
"move": "Mover",
"connect": "Conectar",
"createGroup": "Crear grupo",
"selectSourcePlaceholder": "Seleccionar origen...",
"selectTargetPlaceholder": "Seleccionar destino...",
"invalidFile": "Archivo no válido",
"hostAlreadyExists": "El host ya está en la topología",
"connectionExists": "La conexión ya existe",
"unknown": "Desconocido",
"name": "Nombre",
"ip": "IP",
"status": "Estado",
"failedToAddNode": "Error al añadir nodo",
"sourceDifferentFromTarget": "El origen y el destino deben ser diferentes",
"exportJSON": "Exportar JSON",
"importJSON": "Importar JSON",
"terminal": "Terminal",
"fileManager": "Gestor de archivos",
"tunnel": "Túnel",
"docker": "Docker",
"serverStats": "Métricas del host",
"hostMetrics": "Métricas del host",
"noNodes": "Aún no hay nodos"
},
"nav": {
"networkGraph": "Gráfico de red"
},
"dashboard": {
"networkGraph": "Gráfico de red"
},
"dashboardTab": {
"nodes": "{{count}} nodos"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Lisää isäntä",
"addGroup": "Lisää ryhmä",
"addLink": "Lisää linkki",
"zoomIn": "Lähennä",
"zoomOut": "Loitonna",
"resetView": "Palauta näkymä",
"selectHost": "Valitse isäntä",
"chooseHost": "Valitse isäntä...",
"parentGroup": "Yläryhmä",
"noGroup": "Ei ryhmää",
"groupName": "Ryhmän nimi",
"color": "Väri",
"source": "Lähde",
"target": "Kohde",
"moveToGroup": "Siirrä ryhmään",
"selectGroup": "Valitse ryhmä...",
"addConnection": "Lisää yhteys",
"hostDetails": "Isännän tiedot",
"removeFromGroup": "Poista ryhmästä",
"addHostHere": "Lisää isäntä tähän",
"editGroup": "Muokkaa ryhmää",
"delete": "Poistaa",
"add": "Lisätä",
"create": "Luoda",
"move": "Liikkua",
"connect": "Yhdistä",
"createGroup": "Luo ryhmä",
"selectSourcePlaceholder": "Valitse lähde...",
"selectTargetPlaceholder": "Valitse kohde...",
"invalidFile": "Virheellinen tiedosto",
"hostAlreadyExists": "Isäntä on jo topologiassa",
"connectionExists": "Yhteys on jo olemassa",
"unknown": "Tuntematon",
"name": "Nimi",
"ip": "IP-osoite",
"status": "Status",
"failedToAddNode": "Solmun lisääminen epäonnistui",
"sourceDifferentFromTarget": "Lähteen ja kohteen on oltava eri",
"exportJSON": "Vie JSON",
"importJSON": "Tuo JSON",
"terminal": "Terminaali",
"fileManager": "Tiedostonhallinta",
"tunnel": "Tunneli",
"docker": "Satamatyöläinen",
"serverStats": "Isännän mittarit",
"hostMetrics": "Isännän mittarit",
"noNodes": "Ei vielä solmuja"
},
"nav": {
"networkGraph": "Verkkokaavio"
},
"dashboard": {
"networkGraph": "Verkkokaavio"
},
"dashboardTab": {
"nodes": "{{count}} solmut"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Ajouter un hôte",
"addGroup": "Ajouter un groupe",
"addLink": "Ajouter un lien",
"zoomIn": "Zoom avant",
"zoomOut": "Zoom arrière",
"resetView": "Réinitialiser la vue",
"selectHost": "Sélectionner l'hôte",
"chooseHost": "Choisir un hôte...",
"parentGroup": "Groupe parent",
"noGroup": "Aucun groupe",
"groupName": "Nom du groupe",
"color": "Couleur",
"source": "Source",
"target": "Cible",
"moveToGroup": "Déplacer vers le groupe",
"selectGroup": "Sélectionner un groupe...",
"addConnection": "Ajouter une connexion",
"hostDetails": "Détails de l'hôte",
"removeFromGroup": "Retirer du groupe",
"addHostHere": "Ajouter un hôte ici",
"editGroup": "Modifier le groupe",
"delete": "Supprimer",
"add": "Ajouter",
"create": "Créer",
"move": "Déplacer",
"connect": "Connecter",
"createGroup": "Créer un groupe",
"selectSourcePlaceholder": "Sélectionner la source...",
"selectTargetPlaceholder": "Sélectionner la cible...",
"invalidFile": "Fichier non valide",
"hostAlreadyExists": "L'hôte est déjà dans la topologie",
"connectionExists": "La connexion existe déjà",
"unknown": "Inconnu",
"name": "Nom",
"ip": "IP",
"status": "Statut",
"failedToAddNode": "Échec de l'ajout du nœud",
"sourceDifferentFromTarget": "La source et la cible doivent être différentes",
"exportJSON": "Exporter JSON",
"importJSON": "Importer JSON",
"terminal": "Terminal",
"fileManager": "Gestionnaire de fichiers",
"tunnel": "Tunnel",
"docker": "Docker",
"serverStats": "Métriques de l'hôte",
"hostMetrics": "Métriques de l'hôte",
"noNodes": "Aucun nœud pour l'instant"
},
"nav": {
"networkGraph": "Graphique réseau"
},
"dashboard": {
"networkGraph": "Graphique réseau"
},
"dashboardTab": {
"nodes": "{{count}} nœuds"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "הוסף מארח",
"addGroup": "הוסף קבוצה",
"addLink": "הוסף קישור",
"zoomIn": "לְהִתְמַקֵד",
"zoomOut": "התקרבות",
"resetView": "איפוס תצוגה",
"selectHost": "בחר מארח",
"chooseHost": "בחר מארח...",
"parentGroup": "קבוצת הורים",
"noGroup": "אין קבוצה",
"groupName": "שם הקבוצה",
"color": "צֶבַע",
"source": "מָקוֹר",
"target": "יַעַד",
"moveToGroup": "העבר לקבוצה",
"selectGroup": "בחירת קבוצה...",
"addConnection": "הוסף חיבור",
"hostDetails": "פרטי המארח",
"removeFromGroup": "הסר מהקבוצה",
"addHostHere": "הוסף מארח כאן",
"editGroup": "עריכת קבוצה",
"delete": "לִמְחוֹק",
"add": "לְהוֹסִיף",
"create": "לִיצוֹר",
"move": "מַהֲלָך",
"connect": "לְחַבֵּר",
"createGroup": "צור קבוצה",
"selectSourcePlaceholder": "בחר מקור...",
"selectTargetPlaceholder": "בחר יעד...",
"invalidFile": "קובץ לא חוקי",
"hostAlreadyExists": "המארח כבר נמצא בטופולוגיה",
"connectionExists": "החיבור כבר קיים",
"unknown": "לֹא יְדוּעַ",
"name": "שֵׁם",
"ip": "IP",
"status": "סטָטוּס",
"failedToAddNode": "נכשל בהוספת הצומת",
"sourceDifferentFromTarget": "המקור והיעד חייבים להיות שונים",
"exportJSON": "ייצוא JSON",
"importJSON": "ייבוא JSON",
"terminal": "מָסוֹף",
"fileManager": "מנהל הקבצים",
"tunnel": "מִנהָרָה",
"docker": "דוקר",
"serverStats": "מדדי מארח",
"hostMetrics": "מדדי מארח",
"noNodes": "עדיין אין צמתים"
},
"nav": {
"networkGraph": "גרף הרשת"
},
"dashboard": {
"networkGraph": "גרף הרשת"
},
"dashboardTab": {
"nodes": "צמתים {{count}}"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "होस्ट जोड़ें",
"addGroup": "समूह जोड़ें",
"addLink": "लिंक जोड़ें",
"zoomIn": "ज़ूम इन",
"zoomOut": "ज़ूम आउट",
"resetView": "रीसेट करें",
"selectHost": "होस्ट चुनें",
"chooseHost": "कोई होस्ट चुनें...",
"parentGroup": "मूल समूह",
"noGroup": "कोई समूह नहीं",
"groupName": "समूह का नाम",
"color": "रंग",
"source": "स्रोत",
"target": "लक्ष्य",
"moveToGroup": "समूह में ले जाएँ",
"selectGroup": "समूह चुनें...",
"addConnection": "कनेक्शन जोड़ें",
"hostDetails": "होस्ट विवरण",
"removeFromGroup": "समूह से निकालें",
"addHostHere": "यहाँ होस्ट जोड़ें",
"editGroup": "समूह संपादित करें",
"delete": "हटाएँ",
"add": "जोड़ें",
"create": "बनाएँ",
"move": "ले जाएँ",
"connect": "कनेक्ट करें",
"createGroup": "समूह बनाएँ",
"selectSourcePlaceholder": "स्रोत चुनें...",
"selectTargetPlaceholder": "लक्ष्य चुनें...",
"invalidFile": "अमान्य फ़ाइल",
"hostAlreadyExists": "होस्ट पहले से टोपोलॉजी में मौजूद है",
"connectionExists": "कनेक्शन पहले से मौजूद है",
"unknown": "अज्ञात",
"name": "नाम",
"ip": "IP",
"status": "स्थिति",
"failedToAddNode": "नोड जोड़ने में विफल",
"sourceDifferentFromTarget": "स्रोत और लक्ष्य भिन्न होने चाहिए",
"exportJSON": "JSON निर्यात करें",
"importJSON": "JSON आयात करें",
"terminal": "टर्मिनल",
"fileManager": "फ़ाइल प्रबंधक",
"tunnel": "टनल",
"docker": "Docker",
"serverStats": "होस्ट मेट्रिक्स",
"hostMetrics": "होस्ट मेट्रिक्स",
"noNodes": "अभी तक कोई नोड नहीं"
},
"nav": {
"networkGraph": "नेटवर्क ग्राफ़"
},
"dashboard": {
"networkGraph": "नेटवर्क ग्राफ़"
},
"dashboardTab": {
"nodes": "{{count}} नोड्स"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Gazdagép hozzáadása",
"addGroup": "Csoport hozzáadása",
"addLink": "Link hozzáadása",
"zoomIn": "Nagyítás",
"zoomOut": "Kicsinyítés",
"resetView": "Nézet visszaállítása",
"selectHost": "Válasszon gazdagépet",
"chooseHost": "Válassz egy tárhelyszolgáltatót...",
"parentGroup": "Szülőcsoport",
"noGroup": "Nincs csoport",
"groupName": "Csoport neve",
"color": "Szín",
"source": "Forrás",
"target": "Cél",
"moveToGroup": "Áthelyezés csoportba",
"selectGroup": "Csoport kiválasztása...",
"addConnection": "Kapcsolat hozzáadása",
"hostDetails": "Gazdagép adatai",
"removeFromGroup": "Eltávolítás a csoportból",
"addHostHere": "Gazdagép hozzáadása ide",
"editGroup": "Csoport szerkesztése",
"delete": "Töröl",
"add": "Hozzáadás",
"create": "Teremt",
"move": "Mozog",
"connect": "Csatlakozás",
"createGroup": "Csoport létrehozása",
"selectSourcePlaceholder": "Forrás kiválasztása...",
"selectTargetPlaceholder": "Cél kiválasztása...",
"invalidFile": "Érvénytelen fájl",
"hostAlreadyExists": "A gazdagép már szerepel a topológiában",
"connectionExists": "A kapcsolat már létezik",
"unknown": "Ismeretlen",
"name": "Név",
"ip": "IP-cím",
"status": "Állapot",
"failedToAddNode": "Nem sikerült hozzáadni a csomópontot",
"sourceDifferentFromTarget": "A forrásnak és a célnak eltérőnek kell lennie",
"exportJSON": "JSON exportálása",
"importJSON": "JSON importálása",
"terminal": "Terminál",
"fileManager": "Fájlkezelő",
"tunnel": "Alagút",
"docker": "Dokkmunkás",
"serverStats": "Gazdagép-metrikák",
"hostMetrics": "Gazdagép-metrikák",
"noNodes": "Még nincsenek csomópontok"
},
"nav": {
"networkGraph": "Hálózati gráf"
},
"dashboard": {
"networkGraph": "Hálózati gráf"
},
"dashboardTab": {
"nodes": "{{count}} csomópontok"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Tambahkan Host",
"addGroup": "Tambahkan Grup",
"addLink": "Tambahkan Tautan",
"zoomIn": "Perbesar",
"zoomOut": "Perkecil tampilan",
"resetView": "Atur Ulang Tampilan",
"selectHost": "Pilih Host",
"chooseHost": "Pilih tuan rumah...",
"parentGroup": "Kelompok Orang Tua",
"noGroup": "Tidak Ada Grup",
"groupName": "Nama Grup",
"color": "Warna",
"source": "Sumber",
"target": "Target",
"moveToGroup": "Pindah ke Grup",
"selectGroup": "Pilih grup...",
"addConnection": "Tambahkan Koneksi",
"hostDetails": "Detail Tuan Rumah",
"removeFromGroup": "Hapus dari Grup",
"addHostHere": "Tambahkan Host di Sini",
"editGroup": "Grup Pengeditan",
"delete": "Menghapus",
"add": "Menambahkan",
"create": "Membuat",
"move": "Bergerak",
"connect": "Menghubungkan",
"createGroup": "Buat Grup",
"selectSourcePlaceholder": "Pilih Sumber...",
"selectTargetPlaceholder": "Pilih Target...",
"invalidFile": "Berkas tidak valid",
"hostAlreadyExists": "Host sudah ada dalam topologi.",
"connectionExists": "Koneksi sudah ada.",
"unknown": "Tidak dikenal",
"name": "Nama",
"ip": "AKU P",
"status": "Status",
"failedToAddNode": "Gagal menambahkan node",
"sourceDifferentFromTarget": "Sumber dan target harus berbeda.",
"exportJSON": "Ekspor JSON",
"importJSON": "Impor JSON",
"terminal": "Terminal",
"fileManager": "Pengelola File",
"tunnel": "Terowongan",
"docker": "Buruh pelabuhan",
"serverStats": "Metrik Host",
"hostMetrics": "Metrik Host",
"noNodes": "Belum ada node"
},
"nav": {
"networkGraph": "Grafik Jaringan"
},
"dashboard": {
"networkGraph": "Grafik Jaringan"
},
"dashboardTab": {
"nodes": "{{count}} node"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Aggiungi host",
"addGroup": "Aggiungi gruppo",
"addLink": "Aggiungi collegamento",
"zoomIn": "Ingrandisci",
"zoomOut": "Riduci",
"resetView": "Reimposta vista",
"selectHost": "Seleziona host",
"chooseHost": "Scegli un host...",
"parentGroup": "Gruppo padre",
"noGroup": "Nessun gruppo",
"groupName": "Nome gruppo",
"color": "Colore",
"source": "Origine",
"target": "Destinazione",
"moveToGroup": "Sposta nel gruppo",
"selectGroup": "Seleziona gruppo...",
"addConnection": "Aggiungi connessione",
"hostDetails": "Dettagli host",
"removeFromGroup": "Rimuovi dal gruppo",
"addHostHere": "Aggiungi host qui",
"editGroup": "Modifica gruppo",
"delete": "Elimina",
"add": "Aggiungi",
"create": "Crea",
"move": "Sposta",
"connect": "Connetti",
"createGroup": "Crea gruppo",
"selectSourcePlaceholder": "Seleziona origine...",
"selectTargetPlaceholder": "Seleziona destinazione...",
"invalidFile": "File non valido",
"hostAlreadyExists": "L'host è già presente nella topologia",
"connectionExists": "La connessione esiste già",
"unknown": "Sconosciuto",
"name": "Nome",
"ip": "IP",
"status": "Stato",
"failedToAddNode": "Impossibile aggiungere il nodo",
"sourceDifferentFromTarget": "Origine e destinazione devono essere diverse",
"exportJSON": "Esporta JSON",
"importJSON": "Importa JSON",
"terminal": "Terminale",
"fileManager": "Gestore file",
"tunnel": "Tunnel",
"docker": "Docker",
"serverStats": "Metriche host",
"hostMetrics": "Metriche host",
"noNodes": "Nessun nodo al momento"
},
"nav": {
"networkGraph": "Grafico di rete"
},
"dashboard": {
"networkGraph": "Grafico di rete"
},
"dashboardTab": {
"nodes": "{{count}} nodi"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "ホストを追加",
"addGroup": "グループを追加",
"addLink": "リンクを追加",
"zoomIn": "拡大",
"zoomOut": "縮小",
"resetView": "表示をリセット",
"selectHost": "ホストを選択",
"chooseHost": "ホストを選択...",
"parentGroup": "親グループ",
"noGroup": "グループなし",
"groupName": "グループ名",
"color": "色",
"source": "ソース",
"target": "ターゲット",
"moveToGroup": "グループに移動",
"selectGroup": "グループを選択...",
"addConnection": "接続を追加",
"hostDetails": "ホスト詳細",
"removeFromGroup": "グループから削除",
"addHostHere": "ここにホストを追加",
"editGroup": "グループを編集",
"delete": "削除",
"add": "追加",
"create": "作成",
"move": "移動",
"connect": "接続",
"createGroup": "グループを作成",
"selectSourcePlaceholder": "ソースを選択...",
"selectTargetPlaceholder": "ターゲットを選択...",
"invalidFile": "無効なファイル",
"hostAlreadyExists": "ホストはトポロジーに既に存在します",
"connectionExists": "接続は既に存在しています",
"unknown": "不明",
"name": "名前",
"ip": "IP",
"status": "ステータス",
"failedToAddNode": "ノードの追加に失敗しました",
"sourceDifferentFromTarget": "ソースとターゲットは異なる必要があります",
"exportJSON": "JSON エクスポート",
"importJSON": "JSON インポート",
"terminal": "ターミナル",
"fileManager": "ファイルマネージャー",
"tunnel": "トンネル",
"docker": "Docker",
"serverStats": "ホストメトリクス",
"hostMetrics": "ホストメトリクス",
"noNodes": "ノードはまだありません"
},
"nav": {
"networkGraph": "ネットワークグラフ"
},
"dashboard": {
"networkGraph": "ネットワークグラフ"
},
"dashboardTab": {
"nodes": "{{count}} ノード"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "호스트 추가",
"addGroup": "그룹 추가",
"addLink": "링크 추가",
"zoomIn": "확대",
"zoomOut": "축소",
"resetView": "보기 초기화",
"selectHost": "호스트 선택",
"chooseHost": "호스트 선택...",
"parentGroup": "상위 그룹",
"noGroup": "그룹 없음",
"groupName": "그룹 이름",
"color": "색상",
"source": "소스",
"target": "대상",
"moveToGroup": "그룹으로 이동",
"selectGroup": "그룹 선택...",
"addConnection": "연결 추가",
"hostDetails": "호스트 세부 정보",
"removeFromGroup": "그룹에서 제거",
"addHostHere": "여기에 호스트 추가",
"editGroup": "그룹 편집",
"delete": "삭제",
"add": "추가",
"create": "생성",
"move": "이동",
"connect": "연결",
"createGroup": "그룹 생성",
"selectSourcePlaceholder": "소스 선택...",
"selectTargetPlaceholder": "대상 선택...",
"invalidFile": "잘못된 파일",
"hostAlreadyExists": "호스트가 이미 토폴로지에 있습니다.",
"connectionExists": "연결이 이미 존재합니다.",
"unknown": "알 수 없음",
"name": "이름",
"ip": "IP",
"status": "상태",
"failedToAddNode": "노드를 추가하지 못했습니다.",
"sourceDifferentFromTarget": "소스와 대상은 달라야 합니다.",
"exportJSON": "JSON 내보내기",
"importJSON": "JSON 가져오기",
"terminal": "터미널",
"fileManager": "파일 관리자",
"tunnel": "터널",
"docker": "Docker",
"serverStats": "호스트 메트릭",
"hostMetrics": "호스트 메트릭",
"noNodes": "아직 노드 없음"
},
"nav": {
"networkGraph": "네트워크 그래프"
},
"dashboard": {
"networkGraph": "네트워크 그래프"
},
"dashboardTab": {
"nodes": "{{count}}개 노드"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Voeg een host toe",
"addGroup": "Groep toevoegen",
"addLink": "Link toevoegen",
"zoomIn": "Inzoomen",
"zoomOut": "Uitzoomen",
"resetView": "Weergave opnieuw instellen",
"selectHost": "Selecteer host",
"chooseHost": "Kies een host...",
"parentGroup": "Oudergroep",
"noGroup": "Geen groep",
"groupName": "Groepsnaam",
"color": "Kleur",
"source": "Bron",
"target": "Doel",
"moveToGroup": "Verplaatsen naar groep",
"selectGroup": "Selecteer groep...",
"addConnection": "Verbinding toevoegen",
"hostDetails": "Gegevens van de gastheer",
"removeFromGroup": "Verwijderen uit groep",
"addHostHere": "Voeg hier de host toe",
"editGroup": "Groep bewerken",
"delete": "Verwijderen",
"add": "Toevoegen",
"create": "Creëren",
"move": "Beweging",
"connect": "Verbinden",
"createGroup": "Groep aanmaken",
"selectSourcePlaceholder": "Selecteer bron...",
"selectTargetPlaceholder": "Doel selecteren...",
"invalidFile": "Ongeldig bestand",
"hostAlreadyExists": "De host bevindt zich al in de topologie.",
"connectionExists": "De verbinding bestaat al",
"unknown": "Onbekend",
"name": "Naam",
"ip": "IP",
"status": "Status",
"failedToAddNode": "Het toevoegen van het knooppunt is mislukt.",
"sourceDifferentFromTarget": "Bron en doel moeten verschillend zijn.",
"exportJSON": "Exporteer JSON",
"importJSON": "JSON importeren",
"terminal": "Terminal",
"fileManager": "Bestandsbeheerder",
"tunnel": "Tunnel",
"docker": "Docker",
"serverStats": "Hoststatistieken",
"hostMetrics": "Hoststatistieken",
"noNodes": "Nog geen knooppunten"
},
"nav": {
"networkGraph": "Netwerkgrafiek"
},
"dashboard": {
"networkGraph": "Netwerkgrafiek"
},
"dashboardTab": {
"nodes": "{{count}} knooppunten"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Legg til vert",
"addGroup": "Legg til gruppe",
"addLink": "Legg til lenke",
"zoomIn": "Zoom inn",
"zoomOut": "Zoom ut",
"resetView": "Tilbakestill visning",
"selectHost": "Velg vert",
"chooseHost": "Velg en vert...",
"parentGroup": "Foreldregruppe",
"noGroup": "Ingen gruppe",
"groupName": "Gruppenavn",
"color": "Farge",
"source": "Kilde",
"target": "Mål",
"moveToGroup": "Flytt til gruppe",
"selectGroup": "Velg gruppe...",
"addConnection": "Legg til tilkobling",
"hostDetails": "Vertsdetaljer",
"removeFromGroup": "Fjern fra gruppen",
"addHostHere": "Legg til vert her",
"editGroup": "Rediger gruppe",
"delete": "Slett",
"add": "Legge til",
"create": "Skape",
"move": "Flytte",
"connect": "Koble til",
"createGroup": "Opprett gruppe",
"selectSourcePlaceholder": "Velg kilde...",
"selectTargetPlaceholder": "Velg mål...",
"invalidFile": "Ugyldig fil",
"hostAlreadyExists": "Verten er allerede i topologien",
"connectionExists": "Tilkoblingen finnes allerede",
"unknown": "Ukjent",
"name": "Navn",
"ip": "IP-adresse",
"status": "Status",
"failedToAddNode": "Kunne ikke legge til node",
"sourceDifferentFromTarget": "Kilde og mål må være forskjellige",
"exportJSON": "Eksporter JSON",
"importJSON": "Importer JSON",
"terminal": "Terminal",
"fileManager": "Filbehandler",
"tunnel": "Tunnel",
"docker": "Dokker",
"serverStats": "Vertsmålinger",
"hostMetrics": "Vertsmålinger",
"noNodes": "Ingen noder ennå"
},
"nav": {
"networkGraph": "Nettverksgraf"
},
"dashboard": {
"networkGraph": "Nettverksgraf"
},
"dashboardTab": {
"nodes": "{{count}} noder"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Dodaj hosta",
"addGroup": "Dodaj grupę",
"addLink": "Dodaj link",
"zoomIn": "Powiększ",
"zoomOut": "Oddal",
"resetView": "Resetuj widok",
"selectHost": "Wybierz hosta",
"chooseHost": "Wybierz hosta...",
"parentGroup": "Grupa nadrzędna",
"noGroup": "Brak grupy",
"groupName": "Nazwa grupy",
"color": "Kolor",
"source": "Źródło",
"target": "Cel",
"moveToGroup": "Przenieś do grupy",
"selectGroup": "Wybierz grupę...",
"addConnection": "Dodaj połączenie",
"hostDetails": "Szczegóły hosta",
"removeFromGroup": "Usuń z grupy",
"addHostHere": "Dodaj hosta tutaj",
"editGroup": "Edytuj grupę",
"delete": "Usuń",
"add": "Dodaj",
"create": "Utwórz",
"move": "Przenieś",
"connect": "Połącz",
"createGroup": "Utwórz grupę",
"selectSourcePlaceholder": "Wybierz źródło...",
"selectTargetPlaceholder": "Wybierz cel...",
"invalidFile": "Nieprawidłowy plik",
"hostAlreadyExists": "Host jest już w topologii",
"connectionExists": "Połączenie już istnieje",
"unknown": "Nieznany",
"name": "Nazwa",
"ip": "IP",
"status": "Status",
"failedToAddNode": "Nie udało się dodać węzła",
"sourceDifferentFromTarget": "Źródło i cel muszą być różne",
"exportJSON": "Eksportuj JSON",
"importJSON": "Importuj JSON",
"terminal": "Terminal",
"fileManager": "Menedżer plików",
"tunnel": "Tunel",
"docker": "Docker",
"serverStats": "Metryki hosta",
"hostMetrics": "Metryki hosta",
"noNodes": "Brak węzłów"
},
"nav": {
"networkGraph": "Graf sieci"
},
"dashboard": {
"networkGraph": "Graf sieci"
},
"dashboardTab": {
"nodes": "{{count}} węzłów"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Adicionar host",
"addGroup": "Adicionar grupo",
"addLink": "Adicionar link",
"zoomIn": "Ampliar",
"zoomOut": "Diminuir o zoom",
"resetView": "Redefinir visualização",
"selectHost": "Selecione o host",
"chooseHost": "Escolha um anfitrião...",
"parentGroup": "Grupo de Pais",
"noGroup": "Nenhum grupo",
"groupName": "Nome do grupo",
"color": "Cor",
"source": "Fonte",
"target": "Alvo",
"moveToGroup": "Mover para o grupo",
"selectGroup": "Selecione o grupo...",
"addConnection": "Adicionar conexão",
"hostDetails": "Detalhes do anfitrião",
"removeFromGroup": "Remover do grupo",
"addHostHere": "Adicione o host aqui",
"editGroup": "Editar grupo",
"delete": "Excluir",
"add": "Adicionar",
"create": "Criar",
"move": "Mover",
"connect": "Conectar",
"createGroup": "Criar grupo",
"selectSourcePlaceholder": "Selecione a fonte...",
"selectTargetPlaceholder": "Selecione o alvo...",
"invalidFile": "Arquivo inválido",
"hostAlreadyExists": "O host já está na topologia.",
"connectionExists": "A conexão já existe.",
"unknown": "Desconhecido",
"name": "Nome",
"ip": "IP",
"status": "Status",
"failedToAddNode": "Falha ao adicionar nó",
"sourceDifferentFromTarget": "A origem e o destino devem ser diferentes.",
"exportJSON": "Exportar JSON",
"importJSON": "Importar JSON",
"terminal": "terminal",
"fileManager": "Gerenciador de arquivos",
"tunnel": "Túnel",
"docker": "Docker",
"serverStats": "Métricas do host",
"hostMetrics": "Métricas do host",
"noNodes": "Ainda não há nós."
},
"nav": {
"networkGraph": "Gráfico de rede"
},
"dashboard": {
"networkGraph": "Gráfico de rede"
},
"dashboardTab": {
"nodes": "{{count}} nós"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Adicionar Host",
"addGroup": "Adicionar Grupo",
"addLink": "Adicionar Ligação",
"zoomIn": "Ampliar",
"zoomOut": "Reduzir",
"resetView": "Repor Vista",
"selectHost": "Selecionar Host",
"chooseHost": "Escolher um host...",
"parentGroup": "Grupo Pai",
"noGroup": "Nenhum grupo",
"groupName": "Nome do Grupo",
"color": "Cor",
"source": "Origem",
"target": "Destino",
"moveToGroup": "Mover para Grupo",
"selectGroup": "Selecionar grupo...",
"addConnection": "Adicionar Ligação",
"hostDetails": "Detalhes do Host",
"removeFromGroup": "Remover do Grupo",
"addHostHere": "Adicionar Host Aqui",
"editGroup": "Editar Grupo",
"delete": "Eliminar",
"add": "Adicionar",
"create": "Criar",
"move": "Mover",
"connect": "Ligar",
"createGroup": "Criar Grupo",
"selectSourcePlaceholder": "Selecionar Origem...",
"selectTargetPlaceholder": "Selecionar Destino...",
"invalidFile": "Ficheiro Inválido",
"hostAlreadyExists": "O host já está na topologia.",
"connectionExists": "A ligação já existe",
"unknown": "Desconhecido",
"name": "Nome",
"ip": "IP",
"status": "Estado",
"failedToAddNode": "Falha ao adicionar nó",
"sourceDifferentFromTarget": "A origem e o destino devem ser diferentes",
"exportJSON": "Exportar JSON",
"importJSON": "Importar JSON",
"terminal": "Terminal",
"fileManager": "Gestor de ficheiros",
"tunnel": "Túnel",
"docker": "Docker",
"serverStats": "Métricas do host",
"hostMetrics": "Métricas do host",
"noNodes": "Ainda sem nós"
},
"nav": {
"networkGraph": "Gráfico de rede"
},
"dashboard": {
"networkGraph": "Gráfico de Rede"
},
"dashboardTab": {
"nodes": "{{count}} nós"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Adăugați gazdă",
"addGroup": "Adăugați un grup",
"addLink": "Adăugați link",
"zoomIn": "Mărire",
"zoomOut": "Micșorare",
"resetView": "Resetare vizualizare",
"selectHost": "Selectați gazda",
"chooseHost": "Alege o gazdă...",
"parentGroup": "Grupul de părinți",
"noGroup": "Fără grup",
"groupName": "Numele grupului",
"color": "Culoare",
"source": "Sursă",
"target": "Ţintă",
"moveToGroup": "Mutare în grup",
"selectGroup": "Selectați grupul...",
"addConnection": "Adăugați o conexiune",
"hostDetails": "Detalii gazdă",
"removeFromGroup": "Eliminare din grup",
"addHostHere": "Adăugați gazda aici",
"editGroup": "Editați grupul",
"delete": "Şterge",
"add": "Adăuga",
"create": "Crea",
"move": "Mişcare",
"connect": "Conectează-te",
"createGroup": "Creare grup",
"selectSourcePlaceholder": "Selectați sursa...",
"selectTargetPlaceholder": "Selectați țintă...",
"invalidFile": "Fișier nevalid",
"hostAlreadyExists": "Gazda se află deja în topologie",
"connectionExists": "Conexiunea există deja",
"unknown": "Necunoscut",
"name": "Nume",
"ip": "IP-ul",
"status": "Stare",
"failedToAddNode": "Nu s-a putut adăuga nodul",
"sourceDifferentFromTarget": "Sursa și ținta trebuie să fie diferite",
"exportJSON": "Export JSON",
"importJSON": "Import JSON",
"terminal": "Terminal",
"fileManager": "Manager de fișiere",
"tunnel": "Tunel",
"docker": "Docher",
"serverStats": "Metrici ale gazdei",
"hostMetrics": "Metrici ale gazdei",
"noNodes": "Încă nu există noduri"
},
"nav": {
"networkGraph": "Grafic de rețea"
},
"dashboard": {
"networkGraph": "Grafic de rețea"
},
"dashboardTab": {
"nodes": "noduri {{count}}"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Добавить хост",
"addGroup": "Добавить группу",
"addLink": "Добавить связь",
"zoomIn": "Приблизить",
"zoomOut": "Отдалить",
"resetView": "Сбросить вид",
"selectHost": "Выбрать хост",
"chooseHost": "Выберите хост...",
"parentGroup": "Родительская группа",
"noGroup": "Без группы",
"groupName": "Имя группы",
"color": "Цвет",
"source": "Источник",
"target": "Цель",
"moveToGroup": "Переместить в группу",
"selectGroup": "Выберите группу...",
"addConnection": "Добавить соединение",
"hostDetails": "Сведения о хосте",
"removeFromGroup": "Удалить из группы",
"addHostHere": "Добавить хост сюда",
"editGroup": "Редактировать группу",
"delete": "Удалить",
"add": "Добавить",
"create": "Создать",
"move": "Переместить",
"connect": "Соединить",
"createGroup": "Создать группу",
"selectSourcePlaceholder": "Выберите источник...",
"selectTargetPlaceholder": "Выберите цель...",
"invalidFile": "Неверный файл",
"hostAlreadyExists": "Хост уже присутствует в топологии",
"connectionExists": "Соединение уже существует",
"unknown": "Неизвестно",
"name": "Имя",
"ip": "IP",
"status": "Статус",
"failedToAddNode": "Не удалось добавить узел",
"sourceDifferentFromTarget": "Источник и цель должны различаться",
"exportJSON": "Экспорт JSON",
"importJSON": "Импорт JSON",
"terminal": "Терминал",
"fileManager": "Файловый менеджер",
"tunnel": "Туннель",
"docker": "Docker",
"serverStats": "Метрики хоста",
"hostMetrics": "Метрики хоста",
"noNodes": "Пока нет узлов"
},
"nav": {
"networkGraph": "Сетевой график"
},
"dashboard": {
"networkGraph": "Сетевой график"
},
"dashboardTab": {
"nodes": "{{count}} узлов"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Додај хоста",
"addGroup": "Додај групу",
"addLink": "Додај линк",
"zoomIn": "Увећај",
"zoomOut": "Умањи",
"resetView": "Ресетуј приказ",
"selectHost": "Изаберите хост",
"chooseHost": "Изаберите домаћина...",
"parentGroup": "Матична група",
"noGroup": "Нема групе",
"groupName": "Назив групе",
"color": "Боја",
"source": "Извор",
"target": "Циљ",
"moveToGroup": "Премести у групу",
"selectGroup": "Изаберите групу...",
"addConnection": "Додај везу",
"hostDetails": "Детаљи домаћина",
"removeFromGroup": "Уклони из групе",
"addHostHere": "Додај хост овде",
"editGroup": "Уреди групу",
"delete": "Обриши",
"add": "Додај",
"create": "Креирај",
"move": "Помери",
"connect": "Повежи се",
"createGroup": "Направи групу",
"selectSourcePlaceholder": "Изаберите извор...",
"selectTargetPlaceholder": "Изаберите циљ...",
"invalidFile": "Неважећа датотека",
"hostAlreadyExists": "Хост је већ у топологији",
"connectionExists": "Веза већ постоји",
"unknown": "Непознато",
"name": "Име",
"ip": "ИП",
"status": "Статус",
"failedToAddNode": "Додавање чвора није успело",
"sourceDifferentFromTarget": "Извор и циљ морају бити различити",
"exportJSON": "Извези JSON",
"importJSON": "Увези JSON",
"terminal": "Терминал",
"fileManager": "Менаџер датотека",
"tunnel": "Тунел",
"docker": "Докер",
"serverStats": "Метрике хоста",
"hostMetrics": "Метрике хоста",
"noNodes": "Још нема чворова"
},
"nav": {
"networkGraph": "Мрежни графикон"
},
"dashboard": {
"networkGraph": "Мрежни графикон"
},
"dashboardTab": {
"nodes": "{{count}} чворова"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Lägg till värd",
"addGroup": "Lägg till grupp",
"addLink": "Lägg till länk",
"zoomIn": "Zooma in",
"zoomOut": "Zooma ut",
"resetView": "Återställ vy",
"selectHost": "Välj värd",
"chooseHost": "Välj en värd...",
"parentGroup": "Föräldragrupp",
"noGroup": "Ingen grupp",
"groupName": "Gruppnamn",
"color": "Färg",
"source": "Källa",
"target": "Mål",
"moveToGroup": "Flytta till grupp",
"selectGroup": "Välj grupp...",
"addConnection": "Lägg till anslutning",
"hostDetails": "Värduppgifter",
"removeFromGroup": "Ta bort från gruppen",
"addHostHere": "Lägg till värd här",
"editGroup": "Redigera grupp",
"delete": "Radera",
"add": "Tillägga",
"create": "Skapa",
"move": "Flytta",
"connect": "Ansluta",
"createGroup": "Skapa grupp",
"selectSourcePlaceholder": "Välj källa...",
"selectTargetPlaceholder": "Välj mål...",
"invalidFile": "Ogiltig fil",
"hostAlreadyExists": "Värden finns redan i topologin",
"connectionExists": "Anslutningen finns redan",
"unknown": "Okänd",
"name": "Namn",
"ip": "IP-adress",
"status": "Status",
"failedToAddNode": "Misslyckades med att lägga till nod",
"sourceDifferentFromTarget": "Källa och mål måste vara olika",
"exportJSON": "Exportera JSON",
"importJSON": "Importera JSON",
"terminal": "Terminal",
"fileManager": "Filhanteraren",
"tunnel": "Tunnel",
"docker": "Hamnarbetare",
"serverStats": "Värdstatistik",
"hostMetrics": "Värdstatistik",
"noNodes": "Inga noder ännu"
},
"nav": {
"networkGraph": "Nätverksgraf"
},
"dashboard": {
"networkGraph": "Nätverksgraf"
},
"dashboardTab": {
"nodes": "{{count}} noder"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "เพิ่มโฮสต์",
"addGroup": "เพิ่มกลุ่ม",
"addLink": "เพิ่มลิงก์",
"zoomIn": "ซูมเข้า",
"zoomOut": "ซูมออก",
"resetView": "รีเซ็ตมุมมอง",
"selectHost": "เลือกโฮสต์",
"chooseHost": "เลือกเจ้าภาพ...",
"parentGroup": "กลุ่มผู้ปกครอง",
"noGroup": "ไม่มีกลุ่ม",
"groupName": "ชื่อกลุ่ม",
"color": "สี",
"source": "แหล่งที่มา",
"target": "เป้า",
"moveToGroup": "ย้ายไปยังกลุ่ม",
"selectGroup": "เลือกกลุ่ม...",
"addConnection": "เพิ่มการเชื่อมต่อ",
"hostDetails": "รายละเอียดโฮสต์",
"removeFromGroup": "ลบออกจากกลุ่ม",
"addHostHere": "เพิ่มโฮสต์ที่นี่",
"editGroup": "แก้ไขกลุ่ม",
"delete": "ลบ",
"add": "เพิ่ม",
"create": "สร้าง",
"move": "เคลื่อนไหว",
"connect": "เชื่อมต่อ",
"createGroup": "สร้างกลุ่ม",
"selectSourcePlaceholder": "เลือกแหล่งที่มา...",
"selectTargetPlaceholder": "เลือกเป้าหมาย...",
"invalidFile": "ไฟล์ไม่ถูกต้อง",
"hostAlreadyExists": "โฮสต์อยู่ในโทโพโลยีแล้ว",
"connectionExists": "การเชื่อมต่อมีอยู่แล้ว",
"unknown": "ไม่ทราบ",
"name": "ชื่อ",
"ip": "ไอพี",
"status": "สถานะ",
"failedToAddNode": "ไม่สามารถเพิ่มโหนดได้",
"sourceDifferentFromTarget": "แหล่งที่มาและเป้าหมายต้องแตกต่างกัน",
"exportJSON": "ส่งออก JSON",
"importJSON": "นำเข้า JSON",
"terminal": "เทอร์มินัล",
"fileManager": "ตัวจัดการไฟล์",
"tunnel": "อุโมงค์",
"docker": "ด็อกเกอร์",
"serverStats": "เมตริกโฮสต์",
"hostMetrics": "เมตริกโฮสต์",
"noNodes": "ยังไม่มีโหนด"
},
"nav": {
"networkGraph": "กราฟเครือข่าย"
},
"dashboard": {
"networkGraph": "กราฟเครือข่าย"
},
"dashboardTab": {
"nodes": "โหนด {{count}}"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Sunucu Ekle",
"addGroup": "Grup Ekle",
"addLink": "Bağlantı Ekle",
"zoomIn": "Yakınlaştır",
"zoomOut": "Uzaklaştır",
"resetView": "Görünümü Sıfırla",
"selectHost": "Sunucu Seç",
"chooseHost": "Bir sunucu seçin...",
"parentGroup": "Üst Grup",
"noGroup": "Grup Yok",
"groupName": "Grup Adı",
"color": "Renk",
"source": "Kaynak",
"target": "Hedef",
"moveToGroup": "Gruba Taşı",
"selectGroup": "Grup seçin...",
"addConnection": "Bağlantı Ekle",
"hostDetails": "Sunucu Detayları",
"removeFromGroup": "Gruptan Kaldır",
"addHostHere": "Buraya Sunucu Ekle",
"editGroup": "Grubu Düzenle",
"delete": "Sil",
"add": "Ekle",
"create": "Oluştur",
"move": "Taşı",
"connect": "Bağlan",
"createGroup": "Grup Oluştur",
"selectSourcePlaceholder": "Kaynak Seçin...",
"selectTargetPlaceholder": "Hedef Seçin...",
"invalidFile": "Geçersiz Dosya",
"hostAlreadyExists": "Sunucu zaten topolojide var",
"connectionExists": "Bağlantı zaten var",
"unknown": "Bilinmiyor",
"name": "Ad",
"ip": "IP",
"status": "Durum",
"failedToAddNode": "Düğüm eklenemedi",
"sourceDifferentFromTarget": "Kaynak ve hedef farklı olmalıdır",
"exportJSON": "JSON Dışa Aktar",
"importJSON": "JSON İçe Aktar",
"terminal": "Terminal",
"fileManager": "Dosya Yöneticisi",
"tunnel": "Tünel",
"docker": "Docker",
"serverStats": "Sunucu Metrikleri",
"hostMetrics": "Sunucu Metrikleri",
"noNodes": "Henüz düğüm yok"
},
"nav": {
"networkGraph": "Ağ Grafiği"
},
"dashboard": {
"networkGraph": "Ağ Grafiği"
},
"dashboardTab": {
"nodes": "{{count}} düğüm"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Додати хоста",
"addGroup": "Додати групу",
"addLink": "Додати посилання",
"zoomIn": "Збільшити масштаб",
"zoomOut": "Зменшити масштаб",
"resetView": "Скинути вигляд",
"selectHost": "Виберіть хоста",
"chooseHost": "Виберіть хоста...",
"parentGroup": "Батьківська група",
"noGroup": "Без групи",
"groupName": "Назва групи",
"color": "Колір",
"source": "Джерело",
"target": "Ціль",
"moveToGroup": "Перемістити до групи",
"selectGroup": "Виберіть групу...",
"addConnection": "Додати підключення",
"hostDetails": "Деталі хоста",
"removeFromGroup": "Видалити з групи",
"addHostHere": "Додати хост тут",
"editGroup": "Редагувати групу",
"delete": "Видалити",
"add": "Додати",
"create": "Створити",
"move": "Перемістити",
"connect": "Підключитися",
"createGroup": "Створити групу",
"selectSourcePlaceholder": "Виберіть джерело...",
"selectTargetPlaceholder": "Виберіть ціль...",
"invalidFile": "Недійсний файл",
"hostAlreadyExists": "Хост вже є в топології",
"connectionExists": "З'єднання вже існує",
"unknown": "Невідомо",
"name": "Ім'я",
"ip": "ІП",
"status": "Статус",
"failedToAddNode": "Не вдалося додати вузол",
"sourceDifferentFromTarget": "Джерело та ціль мають бути різними",
"exportJSON": "Експорт JSON",
"importJSON": "Імпорт JSON",
"terminal": "Термінал",
"fileManager": "Файловий менеджер",
"tunnel": "Тунель",
"docker": "Докер",
"serverStats": "Метрики хоста",
"hostMetrics": "Метрики хоста",
"noNodes": "Поки що немає вузлів"
},
"nav": {
"networkGraph": "Мережевий графік"
},
"dashboard": {
"networkGraph": "Мережевий графік"
},
"dashboardTab": {
"nodes": "{{count}} вузлів"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "Thêm máy chủ",
"addGroup": "Thêm nhóm",
"addLink": "Thêm liên kết",
"zoomIn": "Phóng to",
"zoomOut": "Thu nhỏ",
"resetView": "Đặt lại khung nhìn",
"selectHost": "Chọn máy chủ",
"chooseHost": "Chọn một máy chủ...",
"parentGroup": "Nhóm cha",
"noGroup": "Không nhóm",
"groupName": "Tên nhóm",
"color": "Màu sắc",
"source": "Nguồn",
"target": "Đích",
"moveToGroup": "Di chuyển vào nhóm",
"selectGroup": "Chọn nhóm...",
"addConnection": "Thêm kết nối",
"hostDetails": "Chi tiết máy chủ",
"removeFromGroup": "Xóa khỏi nhóm",
"addHostHere": "Thêm máy chủ tại đây",
"editGroup": "Sửa nhóm",
"delete": "Xóa",
"add": "Thêm",
"create": "Tạo",
"move": "Di chuyển",
"connect": "Kết nối",
"createGroup": "Tạo nhóm",
"selectSourcePlaceholder": "Chọn nguồn...",
"selectTargetPlaceholder": "Chọn đích...",
"invalidFile": "Tệp không hợp lệ",
"hostAlreadyExists": "Máy chủ đã có trong cấu trúc liên kết",
"connectionExists": "Kết nối đã tồn tại",
"unknown": "Không xác định",
"name": "Tên",
"ip": "IP",
"status": "Trạng thái",
"failedToAddNode": "Không thể thêm nút",
"sourceDifferentFromTarget": "Nguồn và đích phải khác nhau",
"exportJSON": "Xuất JSON",
"importJSON": "Nhập JSON",
"terminal": "Terminal",
"fileManager": "Trình quản lý file",
"tunnel": "Đường hầm",
"docker": "Docker",
"serverStats": "Số liệu máy chủ",
"hostMetrics": "Số liệu máy chủ",
"noNodes": "Chưa có nút nào"
},
"nav": {
"networkGraph": "Biểu đồ mạng"
},
"dashboard": {
"networkGraph": "Biểu đồ Mạng"
},
"dashboardTab": {
"nodes": "{{count}} node"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "添加主机",
"addGroup": "添加分组",
"addLink": "添加链接",
"zoomIn": "放大",
"zoomOut": "缩小",
"resetView": "重置视图",
"selectHost": "选择主机",
"chooseHost": "选择主机...",
"parentGroup": "父分组",
"noGroup": "无分组",
"groupName": "分组名称",
"color": "颜色",
"source": "源",
"target": "目标",
"moveToGroup": "移至分组",
"selectGroup": "选择分组...",
"addConnection": "添加连接",
"hostDetails": "主机详情",
"removeFromGroup": "移出群组",
"addHostHere": "在此添加主机",
"editGroup": "编辑群组",
"delete": "删除",
"add": "添加",
"create": "创建",
"move": "移动",
"connect": "连接",
"createGroup": "创建群组",
"selectSourcePlaceholder": "选择源...",
"selectTargetPlaceholder": "选择目标...",
"invalidFile": "无效文件",
"hostAlreadyExists": "主机已在拓扑中",
"connectionExists": "连接已存在",
"unknown": "未知",
"name": "名称",
"ip": "IP",
"status": "状态",
"failedToAddNode": "添加节点失败",
"sourceDifferentFromTarget": "源和目标必须不同",
"exportJSON": "导出 JSON",
"importJSON": "导入 JSON",
"terminal": "终端",
"fileManager": "文件管理器",
"tunnel": "隧道",
"docker": "Docker",
"serverStats": "主机指标",
"hostMetrics": "主机指标",
"noNodes": "尚无节点"
},
"nav": {
"networkGraph": "网络拓扑图"
},
"dashboard": {
"networkGraph": "网络图表"
},
"dashboardTab": {
"nodes": "{{count}} 个节点"
}
}
@@ -0,0 +1,60 @@
{
"networkGraph": {
"addHost": "新增主機",
"addGroup": "新增群組",
"addLink": "新增連結",
"zoomIn": "放大",
"zoomOut": "縮小",
"resetView": "重置檢視",
"selectHost": "選取主機",
"chooseHost": "選擇主機...",
"parentGroup": "父群組",
"noGroup": "無群組",
"groupName": "群組名稱",
"color": "顏色",
"source": "來源",
"target": "目標",
"moveToGroup": "移至群組",
"selectGroup": "選取群組...",
"addConnection": "新增連線",
"hostDetails": "主機詳細資料",
"removeFromGroup": "從群組中移除",
"addHostHere": "在此新增主機",
"editGroup": "編輯群組",
"delete": "刪除",
"add": "新增",
"create": "建立",
"move": "移動",
"connect": "連線",
"createGroup": "建立群組",
"selectSourcePlaceholder": "選取來源...",
"selectTargetPlaceholder": "選取目標...",
"invalidFile": "無效的檔案",
"hostAlreadyExists": "主機已存在於拓撲中",
"connectionExists": "連線已存在",
"unknown": "未知",
"name": "名稱",
"ip": "IP",
"status": "狀態",
"failedToAddNode": "無法新增節點",
"sourceDifferentFromTarget": "來源與目標必須不同",
"exportJSON": "匯出 JSON",
"importJSON": "匯入 JSON",
"terminal": "終端機",
"fileManager": "檔案管理員",
"tunnel": "隧道",
"docker": "Docker",
"serverStats": "主機指標",
"hostMetrics": "主機指標",
"noNodes": "尚無節點"
},
"nav": {
"networkGraph": "網路圖表"
},
"dashboard": {
"networkGraph": "網路圖表"
},
"dashboardTab": {
"nodes": "{{count}} 個節點"
}
}
+7
View File
@@ -23,6 +23,13 @@
"icon": "Network",
"openFrom": ["rail", "palette"]
}
],
"dashboardCards": [
{
"id": "network_graph",
"titleKey": "dashboard.networkGraph",
"icon": "Network"
}
]
},
"locales": "locales",
@@ -59,7 +59,7 @@ import {
ArrowDownUp,
Loader2,
} from "lucide-react";
import { useTranslation } from "react-i18next";
import { useTranslation } from "@termix/plugin-sdk/frontend";
import { useTabsSafe } from "@/shell/TabContext";
import { cn } from "@/lib/utils";
import { readStatusColorScheme } from "@/hooks/use-status-color-scheme";
@@ -1,44 +0,0 @@
/**
* Frontend half of the network-topology plugin.
*
* NetworkGraphCard renders in two modes: as a full tab (network_graph) and
* embedded as a dashboard card. Both usages are wired today through the
* existing tabUtils.tsx / DashboardTab.tsx switch statements the same way
* fleet-inventory's tab is, not through register() below -- per
* src/ui/shell/pluginLoader.ts's own comment, "there is no plugin loader
* yet" for the frontend half.
*
* register()/unregister() still follow the same shape every other plugin's
* frontend entry does, so this is ready the moment a real frontend plugin
* loader exists.
*/
export const id = "network-topology";
export const tabId = "network_graph";
export async function register({
registerRailItem,
registerTabComponent,
icons,
}) {
registerTabComponent?.(tabId, () =>
import("./NetworkGraphCard.tsx").then((m) => ({
default: m.NetworkGraphCard,
})),
);
registerRailItem?.({
id: tabId,
icon: icons.Network,
labelKey: "nav.networkGraph",
kind: "tab",
});
}
export async function unregister({
unregisterRailItem,
unregisterTabComponent,
}) {
unregisterRailItem?.(tabId);
unregisterTabComponent?.(tabId);
}
@@ -0,0 +1,47 @@
import { Network } from "lucide-react";
import type {
DashboardCardProps,
TabProps,
TermixApp,
} from "@termix/plugin-sdk/frontend";
import { NetworkGraphCard } from "./NetworkGraphCard";
const VIEW_ID = "network_graph";
function GraphTab({ isVisible }: TabProps) {
return <NetworkGraphCard embedded={false} isVisible={isVisible} />;
}
function GraphCard({ isVisible, shell }: DashboardCardProps) {
return (
<NetworkGraphCard
embedded={true}
isVisible={isVisible}
onOpenInNewTab={() => shell.openSingletonTab(VIEW_ID)}
/>
);
}
export function activate(app: TermixApp): void {
app.registerTab(VIEW_ID, GraphTab, {
icon: Network,
titleKey: "nav.networkGraph",
singleton: true,
hostless: true,
});
app.registerRailItem({
id: VIEW_ID,
icon: Network,
titleKey: "nav.networkGraph",
kind: "tab",
after: "local-terminal",
});
app.registerDashboardCard({
id: VIEW_ID,
titleKey: "dashboard.networkGraph",
defaultHeight: 350,
component: GraphCard,
});
}
@@ -0,0 +1,53 @@
import { afterEach, describe, expect, it } from "vitest";
import {
renderWithApp,
type RenderedPluginApp,
} from "@termix/plugin-sdk/testing";
import type { PluginManifest } from "@termix/plugin-sdk/manifest";
import * as plugin from "../../src/frontend/index";
import manifestJson from "../../manifest.json";
import locales from "../../locales/en.json";
const manifest = manifestJson as unknown as PluginManifest;
const declared = (views?: Array<{ id: string }>) =>
(views ?? []).map((view) => view.id).sort();
let rendered: RenderedPluginApp | null = null;
afterEach(async () => {
await rendered?.deactivate();
rendered = null;
});
describe(`${manifest.id} activate`, () => {
it("activates and registers only views its manifest declares", async () => {
rendered = await renderWithApp(plugin, { manifest, locales });
const contributes = manifest.contributes as unknown as Record<
string,
Array<{ id: string }> | undefined
>;
const tabs = declared(contributes.tabs);
// A rail panel may reuse one of the plugin's tab ids.
const panels = [...declared(contributes.panels), ...tabs];
const cards = declared(contributes.dashboardCards);
for (const id of rendered.registered.tabs()) expect(tabs).toContain(id);
for (const id of rendered.registered.panels()) expect(panels).toContain(id);
for (const id of rendered.registered.dashboardCards()) {
expect(cards).toContain(id);
}
});
it("removes everything it registered on deactivate", async () => {
const app = await renderWithApp(plugin, { manifest, locales });
await app.deactivate();
expect(app.registered.tabs()).toEqual([]);
expect(app.registered.panels()).toEqual([]);
expect(app.registered.railItems()).toEqual([]);
expect(app.registered.hostActions()).toEqual([]);
expect(app.registered.hostEditorSections()).toEqual([]);
expect(app.registered.dashboardCards()).toEqual([]);
expect(app.registered.settingsComponents()).toEqual([]);
expect(app.registered.actions()).toEqual([]);
});
});