indas-ui 0.1.8 → 0.1.9
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/dist/cjs/components/dashboard/charts/BoxPlot.js +5 -5
- package/dist/cjs/components/dashboard/charts/Gantt.js +30 -30
- package/dist/cjs/components/dashboard/charts/Pareto.js +2 -2
- package/dist/cjs/components/datagrid/DataGrid.js +10 -10
- package/dist/cjs/components/datagrid/controls/menu/view/CardView.js +6 -6
- package/dist/cjs/components/modals/Modal.js +30 -6
- package/dist/cjs/components/ui/chart.js +4 -4
- package/dist/cjs/contexts/ThemeContext.js +52 -52
- package/dist/cjs/lib/api/activity/email/templates.js +218 -218
- package/dist/cjs/lib/theme/utils.js +26 -26
- package/dist/cjs/lib/vision/dieline-extractor.js +76 -76
- package/dist/cjs/locales/de.json +78 -78
- package/dist/cjs/locales/en.json +2217 -2217
- package/dist/cjs/locales/es.json +78 -78
- package/dist/cjs/locales/fr.json +77 -77
- package/dist/cjs/locales/hi.json +1599 -1599
- package/dist/cjs/services/GlobalLoadingService.js +37 -37
- package/dist/cjs/styles/grid-themes.css +345 -345
- package/dist/cjs/styles/sidebar-scrollbar.css +45 -45
- package/dist/cjs/styles/tokens.css +712 -712
- package/dist/components/dashboard/charts/BoxPlot.js +5 -5
- package/dist/components/dashboard/charts/Gantt.js +30 -30
- package/dist/components/dashboard/charts/Pareto.js +2 -2
- package/dist/components/datagrid/DataGrid.js +10 -10
- package/dist/components/datagrid/controls/menu/view/CardView.js +6 -6
- package/dist/components/modals/Modal.js +30 -6
- package/dist/components/ui/chart.js +4 -4
- package/dist/contexts/ThemeContext.js +52 -52
- package/dist/lib/api/activity/email/templates.js +218 -218
- package/dist/lib/theme/utils.js +26 -26
- package/dist/lib/vision/dieline-extractor.js +76 -76
- package/dist/locales/de.json +78 -78
- package/dist/locales/en.json +2217 -2217
- package/dist/locales/es.json +78 -78
- package/dist/locales/fr.json +77 -77
- package/dist/locales/hi.json +1599 -1599
- package/dist/services/GlobalLoadingService.js +37 -37
- package/dist/styles/grid-themes.css +345 -345
- package/dist/styles/sidebar-scrollbar.css +45 -45
- package/dist/styles/tokens.css +712 -712
- package/package.json +196 -196
|
@@ -23,88 +23,88 @@ exports.extractDielineSpecs = extractDielineSpecs;
|
|
|
23
23
|
const client_1 = __importDefault(require("../api/core/client.js"));
|
|
24
24
|
const reference_grid_1 = require("./reference-grid.js");
|
|
25
25
|
/* ───────────────────── Prompts ───────────────────── */
|
|
26
|
-
const TRIAGE_SYSTEM_PROMPT = `You are a packaging-carton expert helping extract specifications from a dieline (keyline) image.
|
|
27
|
-
|
|
28
|
-
You will receive TWO images:
|
|
29
|
-
1. USER IMAGE — a dieline the user uploaded. It shows the flat unfolded carton with dimension labels in mm.
|
|
30
|
-
2. REFERENCE GRID — a labeled grid of all known carton TYPES, each drawn as a 2D keyline using identical reference dimensions. Treat this as ground truth for what each named type looks like.
|
|
31
|
-
|
|
32
|
-
## Dimension extraction approach
|
|
33
|
-
|
|
34
|
-
DO NOT try to figure out which label is L, W, or H based on the panel structure — visual judgment of which panel has a tuck flap vs dust ear is unreliable at small image scales.
|
|
35
|
-
|
|
36
|
-
Instead, read the dimension labels and report:
|
|
37
|
-
- The VERTICAL label (the one with a vertical double-headed arrow, measuring the central strip's height) → this is H.
|
|
38
|
-
- The two HORIZONTAL labels → report them BOTH, in order from LEFT TO RIGHT as they appear in the image. Call them horizontalLeft and horizontalRight.
|
|
39
|
-
|
|
40
|
-
The downstream pipeline will assign L vs W based on the matched content type's geometry. You only need to do accurate OCR of label values and their positions.
|
|
41
|
-
|
|
42
|
-
## Your job (pass 1 — triage)
|
|
43
|
-
1. Read every visible dimension label on the USER IMAGE.
|
|
44
|
-
2. Identify the vertical label (vertical arrow on the central strip) → H.
|
|
45
|
-
3. Identify the two horizontal labels → record their values AND their left/right order in the image.
|
|
46
|
-
4. Compare the USER IMAGE's overall shape (flap layout, dust ears, glue tab position, lock features) against EVERY tile in the REFERENCE GRID.
|
|
47
|
-
5. Return the FIVE most visually-similar reference types in ranked order.
|
|
48
|
-
|
|
49
|
-
## Output
|
|
50
|
-
Return STRICT JSON only, no prose, no markdown fences:
|
|
51
|
-
{
|
|
52
|
-
"H": number | null,
|
|
53
|
-
"horizontalLeft": number | null,
|
|
54
|
-
"horizontalRight": number | null,
|
|
55
|
-
"candidates": [string, string, string, string, string],
|
|
56
|
-
"notes": "short note on label readings and why these candidates"
|
|
57
|
-
}
|
|
58
|
-
Every value in candidates MUST be an exact label visible in the REFERENCE GRID.
|
|
26
|
+
const TRIAGE_SYSTEM_PROMPT = `You are a packaging-carton expert helping extract specifications from a dieline (keyline) image.
|
|
27
|
+
|
|
28
|
+
You will receive TWO images:
|
|
29
|
+
1. USER IMAGE — a dieline the user uploaded. It shows the flat unfolded carton with dimension labels in mm.
|
|
30
|
+
2. REFERENCE GRID — a labeled grid of all known carton TYPES, each drawn as a 2D keyline using identical reference dimensions. Treat this as ground truth for what each named type looks like.
|
|
31
|
+
|
|
32
|
+
## Dimension extraction approach
|
|
33
|
+
|
|
34
|
+
DO NOT try to figure out which label is L, W, or H based on the panel structure — visual judgment of which panel has a tuck flap vs dust ear is unreliable at small image scales.
|
|
35
|
+
|
|
36
|
+
Instead, read the dimension labels and report:
|
|
37
|
+
- The VERTICAL label (the one with a vertical double-headed arrow, measuring the central strip's height) → this is H.
|
|
38
|
+
- The two HORIZONTAL labels → report them BOTH, in order from LEFT TO RIGHT as they appear in the image. Call them horizontalLeft and horizontalRight.
|
|
39
|
+
|
|
40
|
+
The downstream pipeline will assign L vs W based on the matched content type's geometry. You only need to do accurate OCR of label values and their positions.
|
|
41
|
+
|
|
42
|
+
## Your job (pass 1 — triage)
|
|
43
|
+
1. Read every visible dimension label on the USER IMAGE.
|
|
44
|
+
2. Identify the vertical label (vertical arrow on the central strip) → H.
|
|
45
|
+
3. Identify the two horizontal labels → record their values AND their left/right order in the image.
|
|
46
|
+
4. Compare the USER IMAGE's overall shape (flap layout, dust ears, glue tab position, lock features) against EVERY tile in the REFERENCE GRID.
|
|
47
|
+
5. Return the FIVE most visually-similar reference types in ranked order.
|
|
48
|
+
|
|
49
|
+
## Output
|
|
50
|
+
Return STRICT JSON only, no prose, no markdown fences:
|
|
51
|
+
{
|
|
52
|
+
"H": number | null,
|
|
53
|
+
"horizontalLeft": number | null,
|
|
54
|
+
"horizontalRight": number | null,
|
|
55
|
+
"candidates": [string, string, string, string, string],
|
|
56
|
+
"notes": "short note on label readings and why these candidates"
|
|
57
|
+
}
|
|
58
|
+
Every value in candidates MUST be an exact label visible in the REFERENCE GRID.
|
|
59
59
|
horizontalLeft is the horizontal label nearest the LEFT side of the image (closer to the glue tab). horizontalRight is the one further right.`;
|
|
60
|
-
const REFINE_SYSTEM_PROMPT = `You are picking the SINGLE best matching carton type for a dieline image.
|
|
61
|
-
|
|
62
|
-
You will receive:
|
|
63
|
-
1. USER IMAGE — the dieline the user uploaded.
|
|
64
|
-
2. CANDIDATE THUMBNAILS — N labeled 2D keyline thumbnails of candidate types drawn with identical reference dimensions.
|
|
65
|
-
|
|
66
|
-
## How to compare (work through each step IN ORDER, do not skip)
|
|
67
|
-
|
|
68
|
-
Step 1 — TUCK FLAP DIRECTION (most discriminating feature)
|
|
69
|
-
Look at the top and bottom of the central panel strip in the USER IMAGE. Find the small rectangular tuck flaps.
|
|
70
|
-
• REVERSE TUCK (ReverseTuckIn, ReverseTuckAndTongue): the TOP tuck flap is on the OPPOSITE SIDE of the panel strip from the BOTTOM tuck flap. They point in opposite directions (one extends up from the left half of the strip, the other extends down from the right half — or vice versa).
|
|
71
|
-
• STRAIGHT TUCK (StandardStraightTuckIn, StandardStraightTuckInNested, StandardStraightTuckInHang, etc.): the TOP and BOTTOM tuck flaps are on the SAME SIDE — both extend from the same panels (both above the front panel, or both above the back panel).
|
|
72
|
-
Eliminate any candidate whose tuck direction disagrees with the USER IMAGE.
|
|
73
|
-
|
|
74
|
-
Step 2 — HANGING / SLOT FEATURES
|
|
75
|
-
Check for hanging-tab cutouts (small rectangular or shaped slots) at the top of the dieline:
|
|
76
|
-
• If the USER IMAGE has a hanging tab/slot → prefer types with "Hang" in the name.
|
|
77
|
-
• If the USER IMAGE has NO hanging tab → eliminate candidates with "Hang" in the name.
|
|
78
|
-
|
|
79
|
-
Step 3 — BOTTOM CONSTRUCTION
|
|
80
|
-
• Crash-lock cartons (CrashLockWithPasting, CrashLockWithoutPasting, CrashLockBottomTuckEndFoldingCarton): the bottom flaps are large interlocking trapezoidal shapes, not simple rectangles.
|
|
81
|
-
• Auto-bottom / web-locking: distinctive angled cuts.
|
|
82
|
-
• Plain tuck-in: simple rectangular bottom flap.
|
|
83
|
-
|
|
84
|
-
Step 4 — GLUE TAB & SPECIAL FEATURES
|
|
85
|
-
• Glue/pasting tab (PF) is the narrow strip on the FAR LEFT of every flat layout. Its presence is universal — not discriminating.
|
|
86
|
-
• Pizza / Cake / Gadget / FourCorner / SixCorner box types have distinctive non-rectangular outer shapes — only pick these if the USER IMAGE has clearly unusual geometry.
|
|
87
|
-
|
|
88
|
-
## After working through the steps
|
|
89
|
-
Pick the SINGLE candidate that survives all eliminations. If two candidates tie, prefer the simpler one (e.g. ReverseTuckIn over a "Nested" or "Tongue" variant unless those features are clearly present).
|
|
90
|
-
|
|
91
|
-
Return STRICT JSON only:
|
|
92
|
-
{
|
|
93
|
-
"contentType": string,
|
|
94
|
-
"confidence": "high" | "medium" | "low",
|
|
95
|
-
"reason": "one short sentence citing the tuck direction + any other discriminating feature you used"
|
|
96
|
-
}
|
|
60
|
+
const REFINE_SYSTEM_PROMPT = `You are picking the SINGLE best matching carton type for a dieline image.
|
|
61
|
+
|
|
62
|
+
You will receive:
|
|
63
|
+
1. USER IMAGE — the dieline the user uploaded.
|
|
64
|
+
2. CANDIDATE THUMBNAILS — N labeled 2D keyline thumbnails of candidate types drawn with identical reference dimensions.
|
|
65
|
+
|
|
66
|
+
## How to compare (work through each step IN ORDER, do not skip)
|
|
67
|
+
|
|
68
|
+
Step 1 — TUCK FLAP DIRECTION (most discriminating feature)
|
|
69
|
+
Look at the top and bottom of the central panel strip in the USER IMAGE. Find the small rectangular tuck flaps.
|
|
70
|
+
• REVERSE TUCK (ReverseTuckIn, ReverseTuckAndTongue): the TOP tuck flap is on the OPPOSITE SIDE of the panel strip from the BOTTOM tuck flap. They point in opposite directions (one extends up from the left half of the strip, the other extends down from the right half — or vice versa).
|
|
71
|
+
• STRAIGHT TUCK (StandardStraightTuckIn, StandardStraightTuckInNested, StandardStraightTuckInHang, etc.): the TOP and BOTTOM tuck flaps are on the SAME SIDE — both extend from the same panels (both above the front panel, or both above the back panel).
|
|
72
|
+
Eliminate any candidate whose tuck direction disagrees with the USER IMAGE.
|
|
73
|
+
|
|
74
|
+
Step 2 — HANGING / SLOT FEATURES
|
|
75
|
+
Check for hanging-tab cutouts (small rectangular or shaped slots) at the top of the dieline:
|
|
76
|
+
• If the USER IMAGE has a hanging tab/slot → prefer types with "Hang" in the name.
|
|
77
|
+
• If the USER IMAGE has NO hanging tab → eliminate candidates with "Hang" in the name.
|
|
78
|
+
|
|
79
|
+
Step 3 — BOTTOM CONSTRUCTION
|
|
80
|
+
• Crash-lock cartons (CrashLockWithPasting, CrashLockWithoutPasting, CrashLockBottomTuckEndFoldingCarton): the bottom flaps are large interlocking trapezoidal shapes, not simple rectangles.
|
|
81
|
+
• Auto-bottom / web-locking: distinctive angled cuts.
|
|
82
|
+
• Plain tuck-in: simple rectangular bottom flap.
|
|
83
|
+
|
|
84
|
+
Step 4 — GLUE TAB & SPECIAL FEATURES
|
|
85
|
+
• Glue/pasting tab (PF) is the narrow strip on the FAR LEFT of every flat layout. Its presence is universal — not discriminating.
|
|
86
|
+
• Pizza / Cake / Gadget / FourCorner / SixCorner box types have distinctive non-rectangular outer shapes — only pick these if the USER IMAGE has clearly unusual geometry.
|
|
87
|
+
|
|
88
|
+
## After working through the steps
|
|
89
|
+
Pick the SINGLE candidate that survives all eliminations. If two candidates tie, prefer the simpler one (e.g. ReverseTuckIn over a "Nested" or "Tongue" variant unless those features are clearly present).
|
|
90
|
+
|
|
91
|
+
Return STRICT JSON only:
|
|
92
|
+
{
|
|
93
|
+
"contentType": string,
|
|
94
|
+
"confidence": "high" | "medium" | "low",
|
|
95
|
+
"reason": "one short sentence citing the tuck direction + any other discriminating feature you used"
|
|
96
|
+
}
|
|
97
97
|
contentType MUST be one of the candidate labels exactly.`;
|
|
98
98
|
function triageUserPrompt(types) {
|
|
99
|
-
return `The REFERENCE GRID contains these types (read the labels under each tile):
|
|
100
|
-
${types.map(t => `- ${t}`).join('\n')}
|
|
101
|
-
|
|
99
|
+
return `The REFERENCE GRID contains these types (read the labels under each tile):
|
|
100
|
+
${types.map(t => `- ${t}`).join('\n')}
|
|
101
|
+
|
|
102
102
|
Extract L, W, H from the USER IMAGE labels, then return the 5 most visually-similar reference types.`;
|
|
103
103
|
}
|
|
104
104
|
function refineUserPrompt(candidates) {
|
|
105
|
-
return `Candidate types to choose from (in the thumbnails, in order):
|
|
106
|
-
${candidates.map((t, i) => `${i + 1}. ${t}`).join('\n')}
|
|
107
|
-
|
|
105
|
+
return `Candidate types to choose from (in the thumbnails, in order):
|
|
106
|
+
${candidates.map((t, i) => `${i + 1}. ${t}`).join('\n')}
|
|
107
|
+
|
|
108
108
|
Pick the single best visual match for the USER IMAGE.`;
|
|
109
109
|
}
|
|
110
110
|
/* ───────────────────── File helpers ───────────────────── */
|
package/dist/cjs/locales/de.json
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
{
|
|
2
|
-
"Sign in to your account": "Melden Sie sich bei Ihrem Konto an",
|
|
3
|
-
"Last login:": "Letzte Anmeldung:",
|
|
4
|
-
"Financial Year": "Geschäftsjahr",
|
|
5
|
-
"Company Code": "Firmencode",
|
|
6
|
-
"Enter your company code": "Geben Sie Ihren Firmencode ein",
|
|
7
|
-
"Username": "Benutzername",
|
|
8
|
-
"Enter your username": "Geben Sie Ihren Benutzernamen ein",
|
|
9
|
-
"Password": "Passwort",
|
|
10
|
-
"Enter your password": "Geben Sie Ihr Passwort ein",
|
|
11
|
-
"Remember me": "Angemeldet bleiben",
|
|
12
|
-
"or": "oder",
|
|
13
|
-
"Signing in...": "Anmelden...",
|
|
14
|
-
"Sign In": "Anmelden",
|
|
15
|
-
"Biometric Login": "Biometrische Anmeldung",
|
|
16
|
-
"Forgot Password?": "Passwort vergessen?",
|
|
17
|
-
"Password Recovery": "Passwortwiederherstellung",
|
|
18
|
-
"Password recovery functionality will be implemented in the next version. Please contact your system administrator for assistance.": "Die Funktion zur Passwortwiederherstellung wird in der nächsten Version implementiert. Bitte wenden Sie sich an Ihren Systemadministrator.",
|
|
19
|
-
"Invalid username or password": "Ungültiger Benutzername oder Passwort",
|
|
20
|
-
"An error occurred. Please try again.": "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.",
|
|
21
|
-
"Settings": "Einstellungen",
|
|
22
|
-
"Back": "Zurück",
|
|
23
|
-
"Profile": "Profil",
|
|
24
|
-
"Notifications": "Benachrichtigungen",
|
|
25
|
-
"Preferences": "Einstellungen",
|
|
26
|
-
"Profile Information": "Profilinformationen",
|
|
27
|
-
"Full Name": "Vollständiger Name",
|
|
28
|
-
"Enter your full name": "Geben Sie Ihren vollständigen Namen ein",
|
|
29
|
-
"Email Address": "E-Mail-Adresse",
|
|
30
|
-
"Enter your email": "Geben Sie Ihre E-Mail ein",
|
|
31
|
-
"Company": "Firma",
|
|
32
|
-
"Company name": "Firmenname",
|
|
33
|
-
"Role": "Rolle",
|
|
34
|
-
"Save Changes": "Änderungen speichern",
|
|
35
|
-
"Security Settings": "Sicherheitseinstellungen",
|
|
36
|
-
"Change Password": "Passwort ändern",
|
|
37
|
-
"Current password": "Aktuelles Passwort",
|
|
38
|
-
"New password": "Neues Passwort",
|
|
39
|
-
"Confirm new password": "Neues Passwort bestätigen",
|
|
40
|
-
"Two-Factor Authentication": "Zwei-Faktor-Authentifizierung",
|
|
41
|
-
"Add an extra layer of security to your account": "Fügen Sie Ihrem Konto eine zusätzliche Sicherheitsebene hinzu",
|
|
42
|
-
"Enable 2FA": "2FA aktivieren",
|
|
43
|
-
"Choose Profile Picture": "Profilbild wählen",
|
|
44
|
-
"Notification Preferences": "Benachrichtigungseinstellungen",
|
|
45
|
-
"Email Notifications": "E-Mail-Benachrichtigungen",
|
|
46
|
-
"Receive email updates about your account": "Erhalten Sie E-Mail-Updates zu Ihrem Konto",
|
|
47
|
-
"Push Notifications": "Push-Benachrichtigungen",
|
|
48
|
-
"Get push notifications in your browser": "Erhalten Sie Push-Benachrichtigungen in Ihrem Browser",
|
|
49
|
-
"System Updates": "Systemupdates",
|
|
50
|
-
"Notifications about system maintenance and updates": "Benachrichtigungen über Systemwartung und Updates",
|
|
51
|
-
"Search Style": "Suchstil",
|
|
52
|
-
"Choose your preferred search interface": "Wählen Sie Ihre bevorzugte Suchoberfläche",
|
|
53
|
-
"Advanced": "Erweitert",
|
|
54
|
-
"Full panel": "Vollständiges Panel",
|
|
55
|
-
"Modal": "Modal",
|
|
56
|
-
"Quick search": "Schnellsuche",
|
|
57
|
-
"No navigation items available": "Keine Navigationselemente verfügbar",
|
|
58
|
-
"Retry": "Erneut versuchen",
|
|
59
|
-
"Expand sidebar": "Seitenleiste erweitern",
|
|
60
|
-
"Collapse sidebar": "Seitenleiste einklappen",
|
|
61
|
-
"Estimo v3.0": "Estimo v3.0",
|
|
62
|
-
"Active": "Aktiv",
|
|
63
|
-
"Default Unit": "Standardeinheit",
|
|
64
|
-
"Select Unit": "Einheit wählen",
|
|
65
|
-
"Loading...": "Laden...",
|
|
66
|
-
"Hello": "Hallo",
|
|
67
|
-
"(Units unavailable)": "(Einheiten nicht verfügbar)",
|
|
68
|
-
"Search everything...": "Alles durchsuchen...",
|
|
69
|
-
"Search Modules": "Module suchen",
|
|
70
|
-
"No modules found for": "Keine Module gefunden für",
|
|
71
|
-
"Mark all as read": "Alle als gelesen markieren",
|
|
72
|
-
"View All Notifications": "Alle Benachrichtigungen anzeigen",
|
|
73
|
-
"No notifications in this category": "Keine Benachrichtigungen in dieser Kategorie",
|
|
74
|
-
"Pending": "Ausstehend",
|
|
75
|
-
"Escalations": "Eskalationen",
|
|
76
|
-
"Updates": "Updates",
|
|
77
|
-
"All": "Alle",
|
|
78
|
-
"Failed to load navigation menu": "Laden des Navigationsmenüs fehlgeschlagen"
|
|
1
|
+
{
|
|
2
|
+
"Sign in to your account": "Melden Sie sich bei Ihrem Konto an",
|
|
3
|
+
"Last login:": "Letzte Anmeldung:",
|
|
4
|
+
"Financial Year": "Geschäftsjahr",
|
|
5
|
+
"Company Code": "Firmencode",
|
|
6
|
+
"Enter your company code": "Geben Sie Ihren Firmencode ein",
|
|
7
|
+
"Username": "Benutzername",
|
|
8
|
+
"Enter your username": "Geben Sie Ihren Benutzernamen ein",
|
|
9
|
+
"Password": "Passwort",
|
|
10
|
+
"Enter your password": "Geben Sie Ihr Passwort ein",
|
|
11
|
+
"Remember me": "Angemeldet bleiben",
|
|
12
|
+
"or": "oder",
|
|
13
|
+
"Signing in...": "Anmelden...",
|
|
14
|
+
"Sign In": "Anmelden",
|
|
15
|
+
"Biometric Login": "Biometrische Anmeldung",
|
|
16
|
+
"Forgot Password?": "Passwort vergessen?",
|
|
17
|
+
"Password Recovery": "Passwortwiederherstellung",
|
|
18
|
+
"Password recovery functionality will be implemented in the next version. Please contact your system administrator for assistance.": "Die Funktion zur Passwortwiederherstellung wird in der nächsten Version implementiert. Bitte wenden Sie sich an Ihren Systemadministrator.",
|
|
19
|
+
"Invalid username or password": "Ungültiger Benutzername oder Passwort",
|
|
20
|
+
"An error occurred. Please try again.": "Ein Fehler ist aufgetreten. Bitte versuchen Sie es erneut.",
|
|
21
|
+
"Settings": "Einstellungen",
|
|
22
|
+
"Back": "Zurück",
|
|
23
|
+
"Profile": "Profil",
|
|
24
|
+
"Notifications": "Benachrichtigungen",
|
|
25
|
+
"Preferences": "Einstellungen",
|
|
26
|
+
"Profile Information": "Profilinformationen",
|
|
27
|
+
"Full Name": "Vollständiger Name",
|
|
28
|
+
"Enter your full name": "Geben Sie Ihren vollständigen Namen ein",
|
|
29
|
+
"Email Address": "E-Mail-Adresse",
|
|
30
|
+
"Enter your email": "Geben Sie Ihre E-Mail ein",
|
|
31
|
+
"Company": "Firma",
|
|
32
|
+
"Company name": "Firmenname",
|
|
33
|
+
"Role": "Rolle",
|
|
34
|
+
"Save Changes": "Änderungen speichern",
|
|
35
|
+
"Security Settings": "Sicherheitseinstellungen",
|
|
36
|
+
"Change Password": "Passwort ändern",
|
|
37
|
+
"Current password": "Aktuelles Passwort",
|
|
38
|
+
"New password": "Neues Passwort",
|
|
39
|
+
"Confirm new password": "Neues Passwort bestätigen",
|
|
40
|
+
"Two-Factor Authentication": "Zwei-Faktor-Authentifizierung",
|
|
41
|
+
"Add an extra layer of security to your account": "Fügen Sie Ihrem Konto eine zusätzliche Sicherheitsebene hinzu",
|
|
42
|
+
"Enable 2FA": "2FA aktivieren",
|
|
43
|
+
"Choose Profile Picture": "Profilbild wählen",
|
|
44
|
+
"Notification Preferences": "Benachrichtigungseinstellungen",
|
|
45
|
+
"Email Notifications": "E-Mail-Benachrichtigungen",
|
|
46
|
+
"Receive email updates about your account": "Erhalten Sie E-Mail-Updates zu Ihrem Konto",
|
|
47
|
+
"Push Notifications": "Push-Benachrichtigungen",
|
|
48
|
+
"Get push notifications in your browser": "Erhalten Sie Push-Benachrichtigungen in Ihrem Browser",
|
|
49
|
+
"System Updates": "Systemupdates",
|
|
50
|
+
"Notifications about system maintenance and updates": "Benachrichtigungen über Systemwartung und Updates",
|
|
51
|
+
"Search Style": "Suchstil",
|
|
52
|
+
"Choose your preferred search interface": "Wählen Sie Ihre bevorzugte Suchoberfläche",
|
|
53
|
+
"Advanced": "Erweitert",
|
|
54
|
+
"Full panel": "Vollständiges Panel",
|
|
55
|
+
"Modal": "Modal",
|
|
56
|
+
"Quick search": "Schnellsuche",
|
|
57
|
+
"No navigation items available": "Keine Navigationselemente verfügbar",
|
|
58
|
+
"Retry": "Erneut versuchen",
|
|
59
|
+
"Expand sidebar": "Seitenleiste erweitern",
|
|
60
|
+
"Collapse sidebar": "Seitenleiste einklappen",
|
|
61
|
+
"Estimo v3.0": "Estimo v3.0",
|
|
62
|
+
"Active": "Aktiv",
|
|
63
|
+
"Default Unit": "Standardeinheit",
|
|
64
|
+
"Select Unit": "Einheit wählen",
|
|
65
|
+
"Loading...": "Laden...",
|
|
66
|
+
"Hello": "Hallo",
|
|
67
|
+
"(Units unavailable)": "(Einheiten nicht verfügbar)",
|
|
68
|
+
"Search everything...": "Alles durchsuchen...",
|
|
69
|
+
"Search Modules": "Module suchen",
|
|
70
|
+
"No modules found for": "Keine Module gefunden für",
|
|
71
|
+
"Mark all as read": "Alle als gelesen markieren",
|
|
72
|
+
"View All Notifications": "Alle Benachrichtigungen anzeigen",
|
|
73
|
+
"No notifications in this category": "Keine Benachrichtigungen in dieser Kategorie",
|
|
74
|
+
"Pending": "Ausstehend",
|
|
75
|
+
"Escalations": "Eskalationen",
|
|
76
|
+
"Updates": "Updates",
|
|
77
|
+
"All": "Alle",
|
|
78
|
+
"Failed to load navigation menu": "Laden des Navigationsmenüs fehlgeschlagen"
|
|
79
79
|
}
|