@isothrum/editor 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +8 -0
- package/PUBLISHING.md +93 -0
- package/README.md +106 -2
- package/desktop-editor/editor.css +11 -0
- package/desktop-editor/index.html +14 -0
- package/desktop-editor/main.tsx +26 -0
- package/dist/desktop/editor.css +1 -0
- package/dist/desktop/editor.js +181 -0
- package/dist/desktop/fonts/geist-cyrillic-ext-wght-normal-RO72NYA2.woff2 +0 -0
- package/dist/desktop/fonts/geist-cyrillic-wght-normal-CK2XY27K.woff2 +0 -0
- package/dist/desktop/fonts/geist-latin-ext-wght-normal-XEQ56JUF.woff2 +0 -0
- package/dist/desktop/fonts/geist-latin-wght-normal-T72VVCUW.woff2 +0 -0
- package/dist/desktop/fonts/geist-mono-cyrillic-ext-wght-normal-QXKVIKFD.woff2 +0 -0
- package/dist/desktop/fonts/geist-mono-cyrillic-wght-normal-GOIAQAGU.woff2 +0 -0
- package/dist/desktop/fonts/geist-mono-latin-ext-wght-normal-HU3ZAWN6.woff2 +0 -0
- package/dist/desktop/fonts/geist-mono-latin-wght-normal-CJNQKXUG.woff2 +0 -0
- package/dist/desktop/fonts/geist-mono-symbols2-wght-normal-WZJJVLQO.woff2 +0 -0
- package/dist/desktop/fonts/geist-mono-vietnamese-wght-normal-KW5NM6YV.woff2 +0 -0
- package/dist/desktop/fonts/geist-vietnamese-wght-normal-Y2R7JZKV.woff2 +0 -0
- package/dist/desktop/fonts/shantell-sans-cyrillic-ext-wght-normal-ILPQWRJJ.woff2 +0 -0
- package/dist/desktop/fonts/shantell-sans-cyrillic-wght-normal-RKC6NDPM.woff2 +0 -0
- package/dist/desktop/fonts/shantell-sans-latin-ext-wght-normal-SNKHG3LM.woff2 +0 -0
- package/dist/desktop/fonts/shantell-sans-latin-wght-normal-7CHHGC3N.woff2 +0 -0
- package/dist/desktop/fonts/shantell-sans-vietnamese-wght-normal-IPFAQSBA.woff2 +0 -0
- package/dist/desktop/index.html +14 -0
- package/dist/desktop/styles.css +2 -0
- package/dist/desktop/wasm/isothrum_wasm.d.ts +60 -0
- package/dist/desktop/wasm/isothrum_wasm.js +312 -0
- package/dist/desktop/wasm/isothrum_wasm_bg.wasm +0 -0
- package/dist/index.js +7059 -0
- package/dist/index.js.map +7 -0
- package/dist/model.js +745 -0
- package/dist/model.js.map +7 -0
- package/dist/types/components/tool/canvas/cable-edge.d.ts +4 -0
- package/dist/types/components/tool/canvas/contexts.d.ts +12 -0
- package/dist/types/components/tool/canvas/device-icon.d.ts +17 -0
- package/dist/types/components/tool/canvas/inline-text.d.ts +15 -0
- package/dist/types/components/tool/canvas/lan-node.d.ts +8 -0
- package/dist/types/components/tool/canvas/machine-addresses.d.ts +14 -0
- package/dist/types/components/tool/canvas/machine-node.d.ts +4 -0
- package/dist/types/components/tool/canvas/note-node.d.ts +7 -0
- package/dist/types/components/tool/canvas/port-led.d.ts +10 -0
- package/dist/types/components/tool/canvas/router-node.d.ts +8 -0
- package/dist/types/components/tool/canvas/sketch.d.ts +50 -0
- package/dist/types/components/tool/canvas/status-dot.d.ts +5 -0
- package/dist/types/components/tool/canvas/switch-node.d.ts +8 -0
- package/dist/types/components/tool/canvas/use-measured-ports.d.ts +7 -0
- package/dist/types/components/tool/context-menus.d.ts +5 -0
- package/dist/types/components/tool/device-block.d.ts +12 -0
- package/dist/types/components/tool/editor-menu.d.ts +28 -0
- package/dist/types/components/tool/export/copy-button.d.ts +9 -0
- package/dist/types/components/tool/export/export-panel.d.ts +17 -0
- package/dist/types/components/tool/export/target-list.d.ts +15 -0
- package/dist/types/components/tool/floating-window.d.ts +13 -0
- package/dist/types/components/tool/flow-canvas.d.ts +6 -0
- package/dist/types/components/tool/hooks/use-cabling.d.ts +23 -0
- package/dist/types/components/tool/hooks/use-captures.d.ts +9 -0
- package/dist/types/components/tool/hooks/use-clipboard.d.ts +12 -0
- package/dist/types/components/tool/hooks/use-context-menus.d.ts +25 -0
- package/dist/types/components/tool/hooks/use-design.d.ts +10 -0
- package/dist/types/components/tool/hooks/use-desktop.d.ts +50 -0
- package/dist/types/components/tool/hooks/use-devices.d.ts +17 -0
- package/dist/types/components/tool/hooks/use-downloads.d.ts +9 -0
- package/dist/types/components/tool/hooks/use-editor.d.ts +609 -0
- package/dist/types/components/tool/hooks/use-engine.d.ts +9 -0
- package/dist/types/components/tool/hooks/use-history.d.ts +9 -0
- package/dist/types/components/tool/hooks/use-lab-actions.d.ts +25 -0
- package/dist/types/components/tool/hooks/use-lab-run.d.ts +25 -0
- package/dist/types/components/tool/hooks/use-lab.d.ts +18 -0
- package/dist/types/components/tool/hooks/use-lan-carry.d.ts +8 -0
- package/dist/types/components/tool/hooks/use-machine-actions.d.ts +26 -0
- package/dist/types/components/tool/hooks/use-placement.d.ts +27 -0
- package/dist/types/components/tool/hooks/use-project.d.ts +25 -0
- package/dist/types/components/tool/hooks/use-projects.d.ts +34 -0
- package/dist/types/components/tool/hooks/use-shared-link.d.ts +23 -0
- package/dist/types/components/tool/hooks/use-toast.d.ts +2 -0
- package/dist/types/components/tool/hooks/use-tools.d.ts +17 -0
- package/dist/types/components/tool/lab-canvas.d.ts +18 -0
- package/dist/types/components/tool/overlays.d.ts +5 -0
- package/dist/types/components/tool/projects-list.d.ts +9 -0
- package/dist/types/components/tool/text.d.ts +418 -0
- package/dist/types/components/tool/toolbar.d.ts +5 -0
- package/dist/types/components/tool/top-bars.d.ts +10 -0
- package/dist/types/components/tool/windows/conditions-fields.d.ts +6 -0
- package/dist/types/components/tool/windows/editor-windows.d.ts +5 -0
- package/dist/types/components/tool/windows/fields.d.ts +4 -0
- package/dist/types/components/tool/windows/lab-status.d.ts +6 -0
- package/dist/types/components/tool/windows/lab-windows.d.ts +13 -0
- package/dist/types/components/tool/windows/link-controls.d.ts +21 -0
- package/dist/types/components/tool/windows/machine-controls.d.ts +16 -0
- package/dist/types/components/tool/windows/machine-inspector.d.ts +11 -0
- package/dist/types/components/tool/windows/runs-fields.d.ts +18 -0
- package/dist/types/components/tool/windows/selected-windows.d.ts +21 -0
- package/dist/types/components/ui/button.d.ts +8 -0
- package/dist/types/components/ui/dropdown-menu.d.ts +21 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/lib/auth.d.ts +38 -0
- package/dist/types/lib/brand.d.ts +19 -0
- package/dist/types/lib/i18n.d.ts +19 -0
- package/dist/types/lib/tool/blocks.d.ts +35 -0
- package/dist/types/lib/tool/cables.d.ts +48 -0
- package/dist/types/lib/tool/clone.d.ts +12 -0
- package/dist/types/lib/tool/conditions.d.ts +31 -0
- package/dist/types/lib/tool/create.d.ts +22 -0
- package/dist/types/lib/tool/desktop.d.ts +63 -0
- package/dist/types/lib/tool/draft.d.ts +20 -0
- package/dist/types/lib/tool/engine.d.ts +33 -0
- package/dist/types/lib/tool/examples.d.ts +11 -0
- package/dist/types/lib/tool/export-targets.d.ts +21 -0
- package/dist/types/lib/tool/facing.d.ts +9 -0
- package/dist/types/lib/tool/geometry.d.ts +36 -0
- package/dist/types/lib/tool/gns3-cables.d.ts +17 -0
- package/dist/types/lib/tool/gns3-import.d.ts +15 -0
- package/dist/types/lib/tool/gns3-parts.d.ts +25 -0
- package/dist/types/lib/tool/issues.d.ts +12 -0
- package/dist/types/lib/tool/layout.d.ts +52 -0
- package/dist/types/lib/tool/live.d.ts +21 -0
- package/dist/types/lib/tool/logos.d.ts +7 -0
- package/dist/types/lib/tool/model.d.ts +173 -0
- package/dist/types/lib/tool/os.d.ts +20 -0
- package/dist/types/lib/tool/pins.d.ts +5 -0
- package/dist/types/lib/tool/placement.d.ts +21 -0
- package/dist/types/lib/tool/ports.d.ts +21 -0
- package/dist/types/lib/tool/presets.d.ts +21 -0
- package/dist/types/lib/tool/projects-api.d.ts +37 -0
- package/dist/types/lib/tool/router-ports.d.ts +22 -0
- package/dist/types/lib/tool/selection.d.ts +19 -0
- package/dist/types/lib/tool/storage.d.ts +25 -0
- package/dist/types/lib/tool/switch-edit.d.ts +17 -0
- package/dist/types/lib/tool/text/de.d.ts +2 -0
- package/dist/types/lib/tool/text/en.d.ts +429 -0
- package/dist/types/lib/tool/text/es.d.ts +2 -0
- package/dist/types/lib/tool/text/fr.d.ts +2 -0
- package/dist/types/lib/tool/text/index.d.ts +419 -0
- package/dist/types/lib/tool/topology.d.ts +2 -0
- package/dist/types/lib/tool/vlans.d.ts +24 -0
- package/dist/types/lib/utils.d.ts +2 -0
- package/dist/types/model.d.ts +13 -0
- package/package.json +88 -4
- package/scripts/build-desktop-editor.mjs +43 -0
- package/scripts/build-lib.mjs +38 -0
- package/src/components/tool/canvas/cable-edge.tsx +112 -0
- package/src/components/tool/canvas/contexts.ts +18 -0
- package/src/components/tool/canvas/device-icon.tsx +105 -0
- package/src/components/tool/canvas/inline-text.tsx +69 -0
- package/src/components/tool/canvas/lan-node.tsx +148 -0
- package/src/components/tool/canvas/machine-addresses.tsx +117 -0
- package/src/components/tool/canvas/machine-node.tsx +114 -0
- package/src/components/tool/canvas/note-node.tsx +109 -0
- package/src/components/tool/canvas/port-led.tsx +21 -0
- package/src/components/tool/canvas/router-node.tsx +114 -0
- package/src/components/tool/canvas/sketch.tsx +130 -0
- package/src/components/tool/canvas/status-dot.tsx +29 -0
- package/src/components/tool/canvas/switch-node.tsx +143 -0
- package/src/components/tool/canvas/use-measured-ports.ts +25 -0
- package/src/components/tool/context-menus.tsx +142 -0
- package/src/components/tool/device-block.tsx +107 -0
- package/src/components/tool/editor-menu.tsx +191 -0
- package/src/components/tool/export/copy-button.tsx +45 -0
- package/src/components/tool/export/export-panel.tsx +127 -0
- package/src/components/tool/export/target-list.tsx +87 -0
- package/src/components/tool/floating-window.tsx +69 -0
- package/src/components/tool/flow-canvas.tsx +138 -0
- package/src/components/tool/hooks/use-cabling.ts +66 -0
- package/src/components/tool/hooks/use-captures.ts +24 -0
- package/src/components/tool/hooks/use-clipboard.ts +54 -0
- package/src/components/tool/hooks/use-context-menus.ts +37 -0
- package/src/components/tool/hooks/use-design.ts +24 -0
- package/src/components/tool/hooks/use-desktop.ts +100 -0
- package/src/components/tool/hooks/use-devices.ts +58 -0
- package/src/components/tool/hooks/use-downloads.ts +42 -0
- package/src/components/tool/hooks/use-editor.ts +114 -0
- package/src/components/tool/hooks/use-engine.ts +29 -0
- package/src/components/tool/hooks/use-history.ts +107 -0
- package/src/components/tool/hooks/use-lab-actions.ts +57 -0
- package/src/components/tool/hooks/use-lab-run.ts +61 -0
- package/src/components/tool/hooks/use-lab.ts +32 -0
- package/src/components/tool/hooks/use-lan-carry.ts +43 -0
- package/src/components/tool/hooks/use-machine-actions.ts +57 -0
- package/src/components/tool/hooks/use-placement.ts +80 -0
- package/src/components/tool/hooks/use-project.ts +112 -0
- package/src/components/tool/hooks/use-projects.ts +85 -0
- package/src/components/tool/hooks/use-shared-link.ts +64 -0
- package/src/components/tool/hooks/use-toast.ts +16 -0
- package/src/components/tool/hooks/use-tools.ts +60 -0
- package/src/components/tool/lab-canvas.tsx +96 -0
- package/src/components/tool/overlays.tsx +104 -0
- package/src/components/tool/projects-list.tsx +96 -0
- package/src/components/tool/text.ts +9 -0
- package/src/components/tool/toolbar.tsx +106 -0
- package/src/components/tool/top-bars.tsx +90 -0
- package/src/components/tool/windows/conditions-fields.tsx +43 -0
- package/src/components/tool/windows/editor-windows.tsx +73 -0
- package/src/components/tool/windows/fields.ts +6 -0
- package/src/components/tool/windows/lab-status.tsx +68 -0
- package/src/components/tool/windows/lab-windows.tsx +130 -0
- package/src/components/tool/windows/link-controls.tsx +69 -0
- package/src/components/tool/windows/machine-controls.tsx +116 -0
- package/src/components/tool/windows/machine-inspector.tsx +83 -0
- package/src/components/tool/windows/runs-fields.tsx +127 -0
- package/src/components/tool/windows/selected-windows.tsx +147 -0
- package/src/components/ui/button.tsx +59 -0
- package/src/components/ui/dropdown-menu.tsx +185 -0
- package/src/index.ts +21 -0
- package/src/lib/auth.tsx +43 -0
- package/src/lib/brand.tsx +46 -0
- package/src/lib/i18n.ts +53 -0
- package/src/lib/tool/blocks.test.ts +64 -0
- package/src/lib/tool/blocks.ts +78 -0
- package/src/lib/tool/cable-wiring.test.ts +74 -0
- package/src/lib/tool/cables.test.ts +75 -0
- package/src/lib/tool/cables.ts +215 -0
- package/src/lib/tool/clone.test.ts +54 -0
- package/src/lib/tool/clone.ts +48 -0
- package/src/lib/tool/conditions.test.ts +170 -0
- package/src/lib/tool/conditions.ts +132 -0
- package/src/lib/tool/create.test.ts +67 -0
- package/src/lib/tool/create.ts +83 -0
- package/src/lib/tool/desktop.test.ts +59 -0
- package/src/lib/tool/desktop.ts +99 -0
- package/src/lib/tool/draft.test.ts +150 -0
- package/src/lib/tool/draft.ts +109 -0
- package/src/lib/tool/engine.test.ts +39 -0
- package/src/lib/tool/engine.ts +58 -0
- package/src/lib/tool/examples.test.ts +35 -0
- package/src/lib/tool/examples.ts +71 -0
- package/src/lib/tool/export-targets.test.ts +47 -0
- package/src/lib/tool/export-targets.ts +84 -0
- package/src/lib/tool/facing.test.ts +72 -0
- package/src/lib/tool/facing.ts +100 -0
- package/src/lib/tool/geometry.test.ts +80 -0
- package/src/lib/tool/geometry.ts +109 -0
- package/src/lib/tool/gns3-cables.test.ts +47 -0
- package/src/lib/tool/gns3-cables.ts +81 -0
- package/src/lib/tool/gns3-import.test.ts +102 -0
- package/src/lib/tool/gns3-import.ts +198 -0
- package/src/lib/tool/gns3-layout.test.ts +62 -0
- package/src/lib/tool/gns3-parts.test.ts +47 -0
- package/src/lib/tool/gns3-parts.ts +68 -0
- package/src/lib/tool/issues.test.ts +35 -0
- package/src/lib/tool/issues.ts +60 -0
- package/src/lib/tool/layout.test.ts +128 -0
- package/src/lib/tool/layout.ts +229 -0
- package/src/lib/tool/live.test.ts +46 -0
- package/src/lib/tool/live.ts +49 -0
- package/src/lib/tool/logos.test.ts +30 -0
- package/src/lib/tool/logos.ts +99 -0
- package/src/lib/tool/model.test.ts +128 -0
- package/src/lib/tool/model.ts +238 -0
- package/src/lib/tool/os.test.ts +45 -0
- package/src/lib/tool/os.ts +57 -0
- package/src/lib/tool/parity.test.ts +145 -0
- package/src/lib/tool/pins.test.ts +24 -0
- package/src/lib/tool/pins.ts +11 -0
- package/src/lib/tool/placement.test.ts +79 -0
- package/src/lib/tool/placement.ts +60 -0
- package/src/lib/tool/ports.test.ts +39 -0
- package/src/lib/tool/ports.ts +48 -0
- package/src/lib/tool/presets.test.ts +50 -0
- package/src/lib/tool/presets.ts +77 -0
- package/src/lib/tool/projects-api.test.ts +59 -0
- package/src/lib/tool/projects-api.ts +47 -0
- package/src/lib/tool/router-ports.test.ts +63 -0
- package/src/lib/tool/router-ports.ts +88 -0
- package/src/lib/tool/selection.test.ts +44 -0
- package/src/lib/tool/selection.ts +34 -0
- package/src/lib/tool/storage.test.ts +123 -0
- package/src/lib/tool/storage.ts +127 -0
- package/src/lib/tool/switch-edit.test.ts +49 -0
- package/src/lib/tool/switch-edit.ts +38 -0
- package/src/lib/tool/text/de.ts +358 -0
- package/src/lib/tool/text/en.ts +371 -0
- package/src/lib/tool/text/es.ts +358 -0
- package/src/lib/tool/text/fr.ts +358 -0
- package/src/lib/tool/text/index.ts +21 -0
- package/src/lib/tool/text/text.test.ts +33 -0
- package/src/lib/tool/topology.test.ts +108 -0
- package/src/lib/tool/topology.ts +116 -0
- package/src/lib/tool/vlans.test.ts +64 -0
- package/src/lib/tool/vlans.ts +79 -0
- package/src/lib/utils.ts +6 -0
- package/src/model.ts +13 -0
- package/src/test/arbitrary.ts +41 -0
- package/src/test/engine.ts +48 -0
- package/src/test/lab.ts +101 -0
- package/styles/globals.css +258 -0
- package/styles/theme.css +192 -0
- package/tsconfig.build.json +12 -0
- package/tsconfig.json +22 -0
- package/wasm/isothrum_wasm.d.ts +60 -0
- package/wasm/isothrum_wasm.js +312 -0
- package/wasm/isothrum_wasm_bg.wasm +0 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import type { EditorText } from "./en";
|
|
2
|
+
|
|
3
|
+
export const de: EditorText = {
|
|
4
|
+
toolbar: {
|
|
5
|
+
blocks: { switch: "Switch", router: "Router", firewall: "Firewall", container: "Container", vm: "Virtuelle Maschine", mine: "Meine Geräte" },
|
|
6
|
+
kindsOf: (block) => `Arten: ${block}`,
|
|
7
|
+
devices: "Geräte",
|
|
8
|
+
hand: "Hand: Arbeitsfläche verschieben",
|
|
9
|
+
select: "Auswahl: auswählen, verschieben, löschen",
|
|
10
|
+
lan: "LAN",
|
|
11
|
+
lanTitle: "LAN / VLAN: ein Bereich; Maschinen darin erhalten dort eine Adresse",
|
|
12
|
+
switch: "Switch",
|
|
13
|
+
switchTitle: "Switch: Ports in VLANs und ein Trunk",
|
|
14
|
+
note: "Notiz",
|
|
15
|
+
noteTitle: "Notiz: Text, Kasten oder Ellipse, um das Lab zu erklären",
|
|
16
|
+
forget: (device) => `${device} vergessen`,
|
|
17
|
+
forgetLabel: (device) => `Gerät ${device} vergessen`,
|
|
18
|
+
undo: "Rückgängig",
|
|
19
|
+
undoTitle: "Rückgängig · Strg/⌘ Z",
|
|
20
|
+
redo: "Wiederholen",
|
|
21
|
+
redoTitle: "Wiederholen · Strg/⌘ Umschalt Z",
|
|
22
|
+
},
|
|
23
|
+
hints: {
|
|
24
|
+
lan: "Auf die Arbeitsfläche klicken, um ein LAN zu platzieren; Maschinen darin erhalten dort eine Adresse. Name oder Bereich doppelklicken, um sie zu bearbeiten.",
|
|
25
|
+
note: "Auf die Arbeitsfläche klicken, um eine Notiz zu platzieren, dann doppelklicken, um zu schreiben. Notizen bleiben im Editor, nicht in der isoloom.yml.",
|
|
26
|
+
place: (device) => `${device}: zum Platzieren auf die Arbeitsfläche klicken. Esc zum Abbrechen.`,
|
|
27
|
+
hand: "Ziehen, um die Arbeitsfläche zu verschieben. V drücken, um wieder auszuwählen.",
|
|
28
|
+
cable: "Von einem Punkt einer Maschine zu einer anderen ziehen, um sie zu verkabeln.",
|
|
29
|
+
select: "Auf der Arbeitsfläche ziehen, um mehrere Maschinen auszuwählen: Entf oder Strg/⌘ C, V, D. Leertaste halten, um die Arbeitsfläche zu verschieben.",
|
|
30
|
+
},
|
|
31
|
+
devices: {
|
|
32
|
+
router: { label: "Router", hint: "automatisch: seine Netze erreichen einander" },
|
|
33
|
+
"router-frr": { label: "Router (FRR)", hint: "FRRouting-Container zum Selbstkonfigurieren" },
|
|
34
|
+
firewall: { label: "Firewall", hint: "nftables auf Alpine" },
|
|
35
|
+
container: { label: "Linux-Container" },
|
|
36
|
+
web: { label: "Webserver", hint: "nginx, Port 80" },
|
|
37
|
+
database: { label: "Datenbank", hint: "PostgreSQL, Port 5432" },
|
|
38
|
+
desktop: { label: "Linux-Desktop", hint: "Xfce mit VNC: Rechtsklick, Bildschirm; Passwort vncpassword" },
|
|
39
|
+
"linux-vm": { label: "Linux-VM" },
|
|
40
|
+
"ubuntu-vm": { label: "Ubuntu-VM" },
|
|
41
|
+
"kali-vm": { label: "Kali-VM" },
|
|
42
|
+
"windows-vm": { label: "Windows-VM" },
|
|
43
|
+
workstation: { label: "Workstation", hint: "hier landet der Benutzer" },
|
|
44
|
+
"cisco-iol": { label: "Cisco-IOL-Router", hint: "IOS unter Linux, dein vrnetlab-Image" },
|
|
45
|
+
"cisco-iol-l2": { label: "Cisco-IOL-Switch", hint: "IOL-L2, dein vrnetlab-Image" },
|
|
46
|
+
},
|
|
47
|
+
myDevice: (what) => `eigenes Gerät: ${what}`,
|
|
48
|
+
myDeviceRouter: "automatischer Router",
|
|
49
|
+
status: {
|
|
50
|
+
loading: "Lädt…",
|
|
51
|
+
toFix: (count) => `${String(count)} zu beheben`,
|
|
52
|
+
valid: "Gültig",
|
|
53
|
+
},
|
|
54
|
+
run: {
|
|
55
|
+
autoStart: "Dieses Lab beim Öffnen der App starten",
|
|
56
|
+
autoStartNote: "Auf diesem Computer, wenn die App mit diesem Lab öffnet und es nicht schon läuft.",
|
|
57
|
+
statusTitle: (up, total) => `${String(up)} von ${String(total)} Maschinen laufen`,
|
|
58
|
+
probed: "Ports von den Maschinen gelesen",
|
|
59
|
+
inferred: "Ports nach dem Zustand der Maschinen (VMs werden nicht abgefragt)",
|
|
60
|
+
run: "Starten",
|
|
61
|
+
starting: "Startet…",
|
|
62
|
+
stop: "Stoppen",
|
|
63
|
+
stopping: "Stoppt…",
|
|
64
|
+
vmsTitle: "Ein Lab mit VMs läuft mit Vagrant (und VirtualBox oder libvirt): installiere es von vagrantup.com oder exportiere das Lab",
|
|
65
|
+
runVmsTitle: "Das Lab auf diesem Rechner ausführen (VMs mit Vagrant)",
|
|
66
|
+
startingVmsLog: "VMs werden mit vagrant up gestartet (beim ersten Mal werden ihre Boxen geladen: Minuten)…",
|
|
67
|
+
runTitle: "Das Lab auf diesem Rechner starten (Docker)",
|
|
68
|
+
startingLog: "Lab wird mit docker compose gestartet…",
|
|
69
|
+
window: "Auf diesem Rechner ausführen",
|
|
70
|
+
running: "Das Lab läuft. Ein LAN oder ein Kabel auswählen, um seinen Verkehr mitzuschneiden.",
|
|
71
|
+
stopped: "Das Lab ist gestoppt.",
|
|
72
|
+
noDocker:
|
|
73
|
+
"Docker antwortet nicht. Docker installieren und starten; unter Linux außerdem das eigene Konto zur Gruppe docker hinzufügen (sudo usermod -aG docker $USER, dann neu anmelden).",
|
|
74
|
+
noLiveCapture: (wireshark, dir) =>
|
|
75
|
+
`${
|
|
76
|
+
wireshark
|
|
77
|
+
? "Wireshark kann mit diesem Konto nicht live mitschneiden: sudo usermod -aG wireshark $USER ausführen, dann neu anmelden. Bis dahin werden Mitschnitte"
|
|
78
|
+
: "Wireshark ist nicht installiert: Mitschnitte werden"
|
|
79
|
+
} als .pcap-Dateien unter ${dir} gespeichert.`,
|
|
80
|
+
},
|
|
81
|
+
capture: {
|
|
82
|
+
capturing: (network) => `Mitschnitt von ${network}`,
|
|
83
|
+
writingTo: "Schreibt nach",
|
|
84
|
+
live: "Live in Wireshark.",
|
|
85
|
+
stop: "Mitschnitt stoppen",
|
|
86
|
+
start: "Verkehr mitschneiden",
|
|
87
|
+
runFirst: "Das Lab starten, um seinen Verkehr mitzuschneiden.",
|
|
88
|
+
},
|
|
89
|
+
link: {
|
|
90
|
+
suspend: "Verbindung trennen",
|
|
91
|
+
resume: "Verbindung wiederherstellen",
|
|
92
|
+
suspendAll: "Alle Verbindungen trennen",
|
|
93
|
+
resumeAll: "Alle Verbindungen wiederherstellen",
|
|
94
|
+
cableSuspended: "Verbindung getrennt: nichts kommt durch.",
|
|
95
|
+
lanSuspended: (ports) => (ports === 1 ? "1 Verbindung getrennt." : `${String(ports)} Verbindungen getrennt.`),
|
|
96
|
+
runFirst: "Das Lab starten, um seine Verbindungen zu trennen.",
|
|
97
|
+
},
|
|
98
|
+
export: "Exportieren",
|
|
99
|
+
engineDidntLoad: (error) => `Die Engine wurde nicht geladen: ${error}`,
|
|
100
|
+
engineFailed: (error) => `Die Engine ist an diesem Lab gescheitert: ${error}`,
|
|
101
|
+
toasts: {
|
|
102
|
+
brokenLink: "Dieser Freigabelink ist beschädigt: Das Lab konnte nicht gelesen werden.",
|
|
103
|
+
openedShared: (lab) => `Geteiltes Lab „${lab}“ geöffnet. Rückgängig holt das vorherige zurück.`,
|
|
104
|
+
linkCopied: "Freigabelink kopiert: Wer ihn öffnet, erhält eine Kopie dieses Labs.",
|
|
105
|
+
copyPrompt: "Diesen Link kopieren, um das Lab zu teilen:",
|
|
106
|
+
savedDevice: (device) => `„${device}“ gespeichert: Es steht am Ende der Werkzeugleiste.`,
|
|
107
|
+
gns3Opened: (lab, machines, lans) =>
|
|
108
|
+
`„${lab}“ aus GNS3 geöffnet: ${String(machines)} ${machines === 1 ? "Maschine" : "Maschinen"}, ${String(lans)} ${lans === 1 ? "LAN" : "LANs"}.`,
|
|
109
|
+
undoBringsBack: "Rückgängig holt das vorherige Lab zurück.",
|
|
110
|
+
gns3Unreadable: "Dieses GNS3-Projekt konnte nicht gelesen werden.",
|
|
111
|
+
},
|
|
112
|
+
windows: {
|
|
113
|
+
machine: "Maschine",
|
|
114
|
+
lan: (lan) => `LAN ${lan}`,
|
|
115
|
+
cable: (a, b) => `Kabel ${a} ↔ ${b}`,
|
|
116
|
+
portOn: (machine) => `Port an ${machine}`,
|
|
117
|
+
cableNote: "Jedes Kabel ist ein eigenes kleines Netz (ein /29); die beiden Enden erhalten seine ersten zwei Adressen.",
|
|
118
|
+
removeCable: "Kabel entfernen",
|
|
119
|
+
conditions: {
|
|
120
|
+
title: "Leitungsbedingungen",
|
|
121
|
+
delay: "Verzögerung (ms, je Richtung)",
|
|
122
|
+
jitter: "Jitter (ms)",
|
|
123
|
+
loss: "Verlust (%)",
|
|
124
|
+
rate: "Bandbreite (Mbit/s)",
|
|
125
|
+
hint: "Eine langsame oder verlustbehaftete Leitung, mit tc netem an jedem Ende. Leer: keine.",
|
|
126
|
+
onLan: "Dieses Kabel bringt die Maschine ins LAN: Bedingungen am LAN einstellen.",
|
|
127
|
+
onVlan: "Bedingungen gelten für ein Kabel oder ein einfaches LAN, noch nicht für das VLAN eines Switches.",
|
|
128
|
+
},
|
|
129
|
+
selected: (count) => `${String(count)} ausgewählt`,
|
|
130
|
+
selection: (items, cables) =>
|
|
131
|
+
`${String(items)} ${items === 1 ? "Element" : "Elemente"}, ${String(cables)} Kabel. Eines davon ziehen, um alle zusammen zu verschieben.`,
|
|
132
|
+
deleteSelection: (count) => `${String(count)} löschen (Entf-Taste)`,
|
|
133
|
+
close: "Schließen",
|
|
134
|
+
},
|
|
135
|
+
lab: {
|
|
136
|
+
title: "Lab",
|
|
137
|
+
containers: "Container",
|
|
138
|
+
vms: "VMs",
|
|
139
|
+
lans: "LANs",
|
|
140
|
+
cables: "Kabel",
|
|
141
|
+
toFix: "Zu beheben",
|
|
142
|
+
valid: "Das Lab ist gültig: bereit zum Export.",
|
|
143
|
+
routing:
|
|
144
|
+
"Ein Router braucht seine eigene Weiterleitungskonfiguration: Jedes Kabel ist ein eigenes Netz, und nichts routet von selbst zwischen ihnen.",
|
|
145
|
+
},
|
|
146
|
+
menu: {
|
|
147
|
+
menu: "Menü",
|
|
148
|
+
example: "Beispiel-Lab laden",
|
|
149
|
+
vlanExample: "VLAN-Beispiel laden",
|
|
150
|
+
gns3: "GNS3-Projekt öffnen…",
|
|
151
|
+
gns3File: "GNS3-Projekt",
|
|
152
|
+
share: "Freigabelink kopieren",
|
|
153
|
+
fit: "An Bildschirm anpassen",
|
|
154
|
+
clear: "Arbeitsfläche leeren",
|
|
155
|
+
light: "Helles Design",
|
|
156
|
+
dark: "Dunkles Design",
|
|
157
|
+
style: "Stil",
|
|
158
|
+
styles: { sketch: "Skizze: handgezeichnet", business: "Business: klar und nüchtern" },
|
|
159
|
+
language: "Sprache",
|
|
160
|
+
about: "Über Isothrum",
|
|
161
|
+
blog: "Blog",
|
|
162
|
+
},
|
|
163
|
+
welcome: {
|
|
164
|
+
menuHint: "Beispiel, Design, Sprache…",
|
|
165
|
+
toolbarHint: "Ein Gerät wählen, dann auf die Arbeitsfläche klicken",
|
|
166
|
+
pitch: "Ein Netzwerk-Lab aus Containern und VMs zeichnen. Herunterladen, fertig zum Start mit Docker, Vagrant oder Terraform.",
|
|
167
|
+
example: "Beispiel-Lab laden",
|
|
168
|
+
how: "So funktioniert's",
|
|
169
|
+
},
|
|
170
|
+
inspector: {
|
|
171
|
+
name: "Name",
|
|
172
|
+
runsAs: "Läuft als",
|
|
173
|
+
automaticRouter: "Automatischer Router",
|
|
174
|
+
container: "Container (Docker)",
|
|
175
|
+
vm: "Virtuelle Maschine",
|
|
176
|
+
routerNote:
|
|
177
|
+
"Nichts zu konfigurieren: Die Netze, an denen er hängt (seine LANs, VLANs und Kabel), erreichen einander über den eigenen Router von Isoloom. Um das Routing selbst zu konfigurieren, ihn als Container (FRR) oder als VM betreiben.",
|
|
178
|
+
image: "Image",
|
|
179
|
+
keepRunning: "Laufen lassen",
|
|
180
|
+
applianceNote: "Cisco IOL läuft aus deinem eigenen Image: baue es mit",
|
|
181
|
+
ciscoOs: "Cisco-OS",
|
|
182
|
+
needsKvm: "Läuft in QEMU: der Docker-Host braucht /dev/kvm.",
|
|
183
|
+
dynamipsFirmware: (name: string) => `Dein 7200-IOS-Image in den Download legen: images/${name}.bin.`,
|
|
184
|
+
iosConfig: "IOS-Konfiguration",
|
|
185
|
+
iosConfigHint: "Ergänzt die Konfiguration, die Isothrum schreibt (Name, admin/admin über SSH, die Adresse jeder Schnittstelle). Gilt beim ersten Start.",
|
|
186
|
+
keepRunningHint: "Für ein Image ohne eigenen Dienst (Alpine, Ubuntu, Kali…): eine Maschine zum Arbeiten.",
|
|
187
|
+
os: "Betriebssystem",
|
|
188
|
+
provision: "Provisionierungsschritte (einer pro Zeile)",
|
|
189
|
+
ports: "Dienst-Ports",
|
|
190
|
+
access: "Der Benutzer landet auf dieser Maschine",
|
|
191
|
+
cables: "Kabel",
|
|
192
|
+
noCables: "Noch keine: von einem ihrer Punkte zu einer anderen Maschine ziehen.",
|
|
193
|
+
saveTitle: "Die Einrichtung dieser Maschine als Gerät in der Werkzeugleiste behalten, um sie erneut zu platzieren",
|
|
194
|
+
save: "Als Gerät speichern",
|
|
195
|
+
remove: "Maschine entfernen",
|
|
196
|
+
},
|
|
197
|
+
canvas: {
|
|
198
|
+
imageShort: "Image",
|
|
199
|
+
hosts: (n) => (n === 1 ? "1 Host" : `${String(n)} Hosts`),
|
|
200
|
+
roles: { router: "Router", firewall: "Firewall", workstation: "Arbeitsplatz", server: "Server", desktop: "Desktop", host: "Host" },
|
|
201
|
+
switchModel: (ports) => `Switch · ${String(ports)} Ports`,
|
|
202
|
+
live: {
|
|
203
|
+
up: "Läuft",
|
|
204
|
+
starting: "Startet",
|
|
205
|
+
unhealthy: "Fehlerhaft",
|
|
206
|
+
down: "Gestoppt",
|
|
207
|
+
portUp: "Verbindung aktiv",
|
|
208
|
+
portDown: "Verbindung unterbrochen",
|
|
209
|
+
portUnknown: "Unbekannt (gestoppt, oder der Port gehört zum Betriebssystem des Geräts)",
|
|
210
|
+
lanPorts: (up, total) => `${String(up)} von ${String(total)} Ports in diesem LAN aktiv`,
|
|
211
|
+
cable: { up: "Überträgt Verkehr", cut: "Getrennt: nichts kommt durch", down: "Unterbrochen: ein Ende ist gestoppt oder sein Port unterbrochen" },
|
|
212
|
+
cableShort: { cut: "getrennt", down: "unterbrochen" },
|
|
213
|
+
},
|
|
214
|
+
editTitle: (what) => `${what}: zum Bearbeiten doppelklicken`,
|
|
215
|
+
unnamed: "unbenannt",
|
|
216
|
+
machineName: "Maschinenname",
|
|
217
|
+
vm: "VM",
|
|
218
|
+
automatic: "Automatisch",
|
|
219
|
+
container: "Container",
|
|
220
|
+
access: "Zugang",
|
|
221
|
+
addressTitle: (network, fixed) => `${network}: doppelklicken, um diese Adresse festzulegen${fixed ? " (festgelegt)" : ""}`,
|
|
222
|
+
fixed: "festgelegt",
|
|
223
|
+
addressOn: (network) => `Adresse in ${network}`,
|
|
224
|
+
lanName: "LAN-Name",
|
|
225
|
+
addressBlock: "Adressbereich",
|
|
226
|
+
internetOnTitle: "Erreicht das Internet (klicken, um es zu sperren)",
|
|
227
|
+
internetOffTitle: "Kein Internet (klicken, um es zu erlauben)",
|
|
228
|
+
internetOn: "Internetzugang: an",
|
|
229
|
+
internetOff: "Internetzugang: aus",
|
|
230
|
+
showAreaTitle: "Bereich des LANs anzeigen",
|
|
231
|
+
hideAreaTitle: "Bereich des LANs ausblenden (das LAN bleibt: nur sein Rechteck verschwindet)",
|
|
232
|
+
showArea: "Bereich anzeigen",
|
|
233
|
+
hideArea: "Bereich ausblenden",
|
|
234
|
+
switchName: "Switch-Name",
|
|
235
|
+
port: (n) => `Port ${String(n)}`,
|
|
236
|
+
trunkPort: "Trunk-Port",
|
|
237
|
+
trunkCarries: (vlans) => `Trunk, trägt ${vlans}`,
|
|
238
|
+
noVlan: "kein VLAN",
|
|
239
|
+
clickToChange: "(klicken zum Ändern)",
|
|
240
|
+
vlanNumber: "VLAN-Nummer",
|
|
241
|
+
vlanBlock: "Adressbereich des VLANs",
|
|
242
|
+
remove: (what) => `${what} entfernen`,
|
|
243
|
+
routerName: "Router-Name",
|
|
244
|
+
portFree: (port) => `${port}: frei`,
|
|
245
|
+
textOnly: "Nur Text",
|
|
246
|
+
box: "Kasten",
|
|
247
|
+
ellipse: "Ellipse",
|
|
248
|
+
colors: { yellow: "gelb", red: "rot", blue: "blau", green: "grün", violet: "violett" },
|
|
249
|
+
color: (color) => `Farbe ${color}`,
|
|
250
|
+
write: "Zum Schreiben doppelklicken",
|
|
251
|
+
note: "Notiz",
|
|
252
|
+
noteName: "Notiz",
|
|
253
|
+
},
|
|
254
|
+
exportPanel: {
|
|
255
|
+
copy: "Kopieren",
|
|
256
|
+
copied: "Kopiert",
|
|
257
|
+
labName: "Lab-Name (der Name des Zips)",
|
|
258
|
+
fixFirst: "Vor dem Export das Lab korrigieren",
|
|
259
|
+
download: (lab) => `${lab}.zip herunterladen`,
|
|
260
|
+
onlySpec: "Nur isoloom.yml",
|
|
261
|
+
where: "Wo es läuft",
|
|
262
|
+
whereIntro: "Das Zip enthält einen Ordner pro Ziel. Entpacken und das passende starten.",
|
|
263
|
+
mixed:
|
|
264
|
+
"Dieses Lab mischt Container und VMs und läuft daher mit Vagrant. Nur Container (Docker, Kubernetes, eine Cloud-VM) oder nur VMs (Proxmox, Cloud-VMs) schalten weitere Ziele frei.",
|
|
265
|
+
install: "Isoloom startet jedes davon mit einem Befehl. Einmal installieren:",
|
|
266
|
+
files: (count) => `${String(count)} ${count === 1 ? "Datei" : "Dateien"}`,
|
|
267
|
+
downloadOnly: (target) => `Nur ${target} herunterladen (mit isoloom.yml)`,
|
|
268
|
+
downloadTarget: (target) => `${target} herunterladen`,
|
|
269
|
+
withIsoloom: "Mit Isoloom (stoppen mit isoloom down)",
|
|
270
|
+
withTool: "Oder direkt mit dem Werkzeug",
|
|
271
|
+
run: "Ausführen",
|
|
272
|
+
specIntro: "Das Lab als eine lesbare Datei, zum Ablegen in Git oder zum Bearbeiten von Hand.",
|
|
273
|
+
showSpec: "Datei anzeigen",
|
|
274
|
+
hideSpec: "Datei ausblenden",
|
|
275
|
+
containersAndVms: "Container und VMs",
|
|
276
|
+
dockerOnOneVm: "Docker auf einer VM",
|
|
277
|
+
oneVmPerMachine: "eine VM pro Maschine",
|
|
278
|
+
},
|
|
279
|
+
issues: {
|
|
280
|
+
vlanBlocks: (vlan, block, other, sw) => `${vlan} ist ${block} auf einem Switch und ${other} auf ${sw}.`,
|
|
281
|
+
areaBlock: (lan, block, switches) => `Der Bereich ${lan} ist ${block}, seine Switches sagen ${switches}.`,
|
|
282
|
+
noName: { machine: "Eine Maschine hat keinen Namen.", lan: "Ein LAN hat keinen Namen.", switch: "Ein Switch hat keinen Namen." },
|
|
283
|
+
sameName: {
|
|
284
|
+
machine: (name) => `Zwei Maschinen heißen „${name}“.`,
|
|
285
|
+
lan: (name) => `Zwei LANs heißen „${name}“.`,
|
|
286
|
+
switch: (name) => `Zwei Switches heißen „${name}“.`,
|
|
287
|
+
},
|
|
288
|
+
badPort: (machine, entry) => `„${entry}“ in den Ports von ${machine} ist kein Port: eine Zahl von 1 bis 65535, dann /udp, /http, /https oder /tls, wenn es nicht einfaches TCP ist.`,
|
|
289
|
+
},
|
|
290
|
+
gns3: {
|
|
291
|
+
notGns3: "Das ist kein GNS3-Projekt: die .gns3-Datei öffnen (in einem .gns3project ist es die oberste).",
|
|
292
|
+
noTopology: "Diese Datei enthält keine GNS3-Topologie.",
|
|
293
|
+
cisco: (node, kind) =>
|
|
294
|
+
`${node}: Ein Cisco-${kind}-Router wurde zu einem automatischen Router; seine IOS-Konfiguration wird nicht übernommen.`,
|
|
295
|
+
firewall: (node) => `${node}: Eine Firewall wurde zu einem automatischen Router (ihre Regeln werden nicht übernommen).`,
|
|
296
|
+
noEquivalent: (node, type) => `${node}: Der GNS3-Knoten „${type}“ hat keine Entsprechung; übersprungen.`,
|
|
297
|
+
noNodes: "Das Projekt hat keine Knoten.",
|
|
298
|
+
},
|
|
299
|
+
account: {
|
|
300
|
+
signIn: "Mit Cyber Auth anmelden",
|
|
301
|
+
signOut: "Abmelden",
|
|
302
|
+
signedInAs: (name: string) => `Angemeldet als ${name}`,
|
|
303
|
+
},
|
|
304
|
+
projects: {
|
|
305
|
+
save: "In meinen Projekten speichern",
|
|
306
|
+
saveAs: "Als neues Projekt speichern…",
|
|
307
|
+
openList: "Projekt öffnen…",
|
|
308
|
+
saveAsPrompt: "Name des neuen Projekts:",
|
|
309
|
+
windowTitle: "Meine Projekte",
|
|
310
|
+
loading: "Projekte werden geladen…",
|
|
311
|
+
none: "Noch kein Projekt: dieses Lab speichern, um eines anzulegen.",
|
|
312
|
+
open: "geöffnet",
|
|
313
|
+
openButton: "Öffnen",
|
|
314
|
+
delete: (name: string) => `${name} löschen`,
|
|
315
|
+
confirmDelete: (name: string) => `Das Projekt „${name}“ und seinen Verlauf löschen?`,
|
|
316
|
+
failed: (error: string) => `Projekte konnten nicht geladen werden: ${error}`,
|
|
317
|
+
history: (name: string) => `Frühere Versionen von ${name}`,
|
|
318
|
+
noVersions: "Noch keine frühere Version.",
|
|
319
|
+
restore: "Öffnen",
|
|
320
|
+
historyHint: "Eine Version zu öffnen legt sie auf die Arbeitsfläche: Rückgängig holt die aktuelle zurück, das nächste Speichern behält sie.",
|
|
321
|
+
opened: (name: string) => `„${name}“ geöffnet. Rückgängig holt das vorherige Lab zurück.`,
|
|
322
|
+
status: {
|
|
323
|
+
idle: (name: string) => `Projekt „${name}“`,
|
|
324
|
+
saving: (name: string) => `„${name}“ wird gespeichert…`,
|
|
325
|
+
saved: (name: string) => `In „${name}“ gespeichert`,
|
|
326
|
+
error: (name: string) => `„${name}“ konnte nicht gespeichert werden`,
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
machineRun: {
|
|
330
|
+
display: "Bildschirm (VNC)",
|
|
331
|
+
displayTitle: "Der Bildschirm der Maschine: ihr VNC-Server oder die Anzeige der VM",
|
|
332
|
+
displayOpened: (what) => `Geöffnet: ${what}`,
|
|
333
|
+
consoleHint: "Doppelklick auf eine Maschine öffnet ihre Konsole; Rechtsklick für Bildschirm und mehr.",
|
|
334
|
+
runFirst: "Das Lab starten, um seine Konsolen zu öffnen.",
|
|
335
|
+
running: "Läuft im Lab.",
|
|
336
|
+
stopped: "Gestoppt (der Rest des Labs läuft).",
|
|
337
|
+
unknown: "Nicht im laufenden Lab: das Lab neu starten, um sie hinzuzufügen.",
|
|
338
|
+
console: "Konsole",
|
|
339
|
+
restart: "Neu starten",
|
|
340
|
+
stop: "Stoppen",
|
|
341
|
+
start: "Starten",
|
|
342
|
+
snapshots: "Snapshots",
|
|
343
|
+
takeSnapshot: "Erstellen",
|
|
344
|
+
snapshotHint: "Die Maschine so speichern, wie sie ist (ihre Dateien, die gespeicherte Konfiguration eines Routers); nicht ihre Volumes",
|
|
345
|
+
snapshotPrompt: "Name des Snapshots (optional):",
|
|
346
|
+
noSnapshots: "Noch keine.",
|
|
347
|
+
restore: "Wiederherstellen",
|
|
348
|
+
inUse: "aktiv",
|
|
349
|
+
ownImage: "Zurück zum eigenen Image",
|
|
350
|
+
deleteSnapshot: (label: string) => `Snapshot ${label} löschen`,
|
|
351
|
+
},
|
|
352
|
+
update: {
|
|
353
|
+
available: (version: string) => `Isothrum ${version} ist verfügbar.`,
|
|
354
|
+
restart: "Neu starten zum Aktualisieren",
|
|
355
|
+
installing: "Wird aktualisiert…",
|
|
356
|
+
later: "Später",
|
|
357
|
+
},
|
|
358
|
+
};
|