L1 Stammdaten: Backoffice-Seiten Kunden, Objekte, Teams und Dokumente
Listen mit Suche/Filter/Paginierung, Popups für Anlage und Bearbeitung, Kundendetail mit Tabs, Dublettenhinweis und Zusammenführen, Objektdetail mit Kartenlink, Dokumenten-Tab und Historie, Teamverwaltung mit Mitgliedern, Dokumentenübersicht. Texte in messages de/en, Audit-Label Ansprechpartner. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"title": "Kunden",
|
||||
"crumb": "Stammdaten",
|
||||
"sub": "Kunden, Ansprechpartner und Objekte an einem Ort.",
|
||||
"new": "Neuer Kunde",
|
||||
"searchLabel": "Suche",
|
||||
"searchPlaceholder": "Name, Kundennummer, Ort oder E-Mail",
|
||||
"filter": {
|
||||
"status": "Status",
|
||||
"all": "Alle (ohne zusammengeführte)",
|
||||
"apply": "Filtern",
|
||||
"reset": "Zurücksetzen"
|
||||
},
|
||||
"status": {
|
||||
"active": "Aktiv",
|
||||
"inactive": "Inaktiv",
|
||||
"provisional": "Vorläufig",
|
||||
"merged": "Zusammengeführt"
|
||||
},
|
||||
"provisionalHint": "Vorläufig – Prüfung durch Backoffice erforderlich",
|
||||
"columns": {
|
||||
"number": "Kundennr.",
|
||||
"name": "Name",
|
||||
"city": "Ort",
|
||||
"contact": "Kontakt",
|
||||
"sites": "Objekte",
|
||||
"status": "Status"
|
||||
},
|
||||
"empty": "Keine Kunden gefunden.",
|
||||
"pagination": {
|
||||
"prev": "Zurück",
|
||||
"next": "Weiter",
|
||||
"summary": "{from}–{to} von {total}"
|
||||
},
|
||||
"fields": {
|
||||
"customerNumber": "Kundennummer",
|
||||
"customerNumberHint": "Leer lassen: nächste freie Nummer wird vergeben.",
|
||||
"companyName": "Firmenname",
|
||||
"salutation": "Anrede",
|
||||
"firstName": "Vorname",
|
||||
"lastName": "Nachname",
|
||||
"street": "Straße",
|
||||
"houseNumber": "Hausnr.",
|
||||
"postalCode": "PLZ",
|
||||
"city": "Ort",
|
||||
"country": "Land",
|
||||
"phone": "Telefon",
|
||||
"mobile": "Mobil",
|
||||
"email": "E-Mail",
|
||||
"notes": "Allgemeine Hinweise",
|
||||
"billingNotes": "Abrechnungshinweise",
|
||||
"status": "Status",
|
||||
"createdAt": "Angelegt",
|
||||
"updatedAt": "Geändert"
|
||||
},
|
||||
"sections": {
|
||||
"customer": "Kunde",
|
||||
"address": "Adresse",
|
||||
"contact": "Erreichbarkeit",
|
||||
"notes": "Hinweise"
|
||||
},
|
||||
"form": {
|
||||
"createTitle": "Kunde anlegen",
|
||||
"createSub": "Firmen- oder Privatkunde. Firmenname oder Nachname ist Pflicht.",
|
||||
"editTitle": "Kunde bearbeiten",
|
||||
"create": "Kunde anlegen",
|
||||
"save": "Speichern",
|
||||
"saving": "Speichert…",
|
||||
"cancel": "Abbrechen",
|
||||
"close": "Schließen",
|
||||
"saved": "Gespeichert.",
|
||||
"required": "Pflichtfeld"
|
||||
},
|
||||
"duplicates": {
|
||||
"title": "Mögliche Dublette",
|
||||
"hint": "Diese Kunden sind ähnlich. Bestehenden Kunden verwenden oder trotzdem neu anlegen.",
|
||||
"open": "Bestehenden Kunden öffnen",
|
||||
"createAnyway": "Trotzdem neu anlegen",
|
||||
"score": "Übereinstimmung {percent} %",
|
||||
"reasons": {
|
||||
"customer_number": "Kundennummer",
|
||||
"company_name": "Name",
|
||||
"address": "Adresse",
|
||||
"email": "E-Mail",
|
||||
"phone": "Telefon"
|
||||
}
|
||||
},
|
||||
"tabs": {
|
||||
"master": "Stammdaten",
|
||||
"contacts": "Ansprechpartner",
|
||||
"sites": "Objekte",
|
||||
"orders": "Aufträge",
|
||||
"documents": "Dokumente"
|
||||
},
|
||||
"detail": {
|
||||
"edit": "Bearbeiten",
|
||||
"confirm": "Kunden bestätigen",
|
||||
"confirmHint": "Vorläufigen Kunden nach Prüfung als aktiv übernehmen.",
|
||||
"merge": "Zusammenführen",
|
||||
"delete": "Löschen",
|
||||
"deleteTitle": "Kunden löschen",
|
||||
"deleteHint": "Der Kunde wird ausgeblendet. Aufträge, Berichte und Nachweise bleiben erhalten. Nur ohne offene Aufträge möglich.",
|
||||
"deleteConfirm": "Kunden löschen",
|
||||
"mergedInto": "Dieser Kunde wurde zusammengeführt in:",
|
||||
"mergedOk": "Kunden zusammengeführt. Kontakte, Objekte, Aufträge und Dokumente liegen jetzt hier.",
|
||||
"back": "Zur Kundenliste",
|
||||
"readOnly": "Nur Lesezugriff."
|
||||
},
|
||||
"contacts": {
|
||||
"new": "Ansprechpartner hinzufügen",
|
||||
"createTitle": "Ansprechpartner hinzufügen",
|
||||
"editTitle": "Ansprechpartner bearbeiten",
|
||||
"empty": "Noch keine Ansprechpartner.",
|
||||
"delete": "Entfernen",
|
||||
"deleteConfirm": "Ansprechpartner entfernen?",
|
||||
"preferred": "bevorzugt",
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"role": "Funktion",
|
||||
"phone": "Telefon",
|
||||
"mobile": "Mobil",
|
||||
"email": "E-Mail",
|
||||
"preferredChannel": "Bevorzugter Kontaktweg",
|
||||
"notes": "Bemerkungen"
|
||||
},
|
||||
"channel": {
|
||||
"phone": "Telefon",
|
||||
"mobile": "Mobil",
|
||||
"email": "E-Mail",
|
||||
"none": "Keine Angabe"
|
||||
}
|
||||
},
|
||||
"sites": {
|
||||
"empty": "Noch keine Objekte.",
|
||||
"new": "Objekt anlegen"
|
||||
},
|
||||
"orders": {
|
||||
"empty": "Keine Aufträge sichtbar.",
|
||||
"hint": "Lesesicht. Aufträge werden im Bereich Aufträge bearbeitet.",
|
||||
"columns": {
|
||||
"number": "Auftrag",
|
||||
"title": "Bezeichnung",
|
||||
"site": "Objekt",
|
||||
"team": "Team",
|
||||
"date": "Termin",
|
||||
"status": "Status"
|
||||
}
|
||||
},
|
||||
"merge": {
|
||||
"title": "Kunden zusammenführen",
|
||||
"sub": "Kontakte, Objekte, Aufträge und Dokumente werden auf den Zielkunden umgehängt. Dieser Kunde wird als zusammengeführt markiert.",
|
||||
"source": "Wird aufgelöst",
|
||||
"target": "Zielkunde",
|
||||
"candidates": "Mögliche Dubletten",
|
||||
"noCandidates": "Keine ähnlichen Kunden gefunden. Zielkunde über die Kundennummer wählen.",
|
||||
"targetNumber": "Oder Kundennummer des Zielkunden",
|
||||
"confirm": "Datensätze geprüft. Zusammenführen bestätigen – das wird nicht automatisch rückgängig gemacht.",
|
||||
"submit": "Zusammenführen"
|
||||
},
|
||||
"errors": {
|
||||
"invalid": "Bitte die markierten Felder prüfen.",
|
||||
"not_found": "Datensatz nicht gefunden.",
|
||||
"forbidden": "Dafür fehlt die Berechtigung.",
|
||||
"conflict": "Das geht so nicht: Der Datensatz wurde geändert oder ist bereits vergeben.",
|
||||
"blocked": "Aktion aktuell nicht möglich.",
|
||||
"generic": "Das hat nicht geklappt. Bitte erneut versuchen.",
|
||||
"required": "Pflichtfeld",
|
||||
"invalidField": "Eingabe prüfen",
|
||||
"name_required": "Firmenname oder Nachname angeben.",
|
||||
"number_taken": "Kundennummer ist bereits vergeben.",
|
||||
"number_allocation": "Keine freie Kundennummer gefunden.",
|
||||
"open_work_orders": "Es gibt noch offene Aufträge.",
|
||||
"not_provisional": "Der Kunde ist nicht vorläufig.",
|
||||
"already_merged": "Einer der Kunden ist bereits zusammengeführt.",
|
||||
"same_customer": "Quelle und Ziel sind derselbe Kunde.",
|
||||
"target_required": "Zielkunden auswählen.",
|
||||
"target_not_found": "Kundennummer nicht gefunden.",
|
||||
"confirm_required": "Bitte die Zusammenführung bestätigen."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"title": "Dokumente",
|
||||
"crumb": "Ablage",
|
||||
"sub": "Alle Unterlagen zu Kunden, Objekten und Aufträgen – mit Version, Prüfsumme und Sichtbarkeit.",
|
||||
"empty": "Keine Dokumente gefunden.",
|
||||
"columns": {
|
||||
"document": "Dokument",
|
||||
"category": "Kategorie",
|
||||
"link": "Zuordnung",
|
||||
"visibility": "Sichtbarkeit",
|
||||
"version": "Version",
|
||||
"size": "Größe",
|
||||
"uploaded": "Hochgeladen"
|
||||
},
|
||||
"filter": {
|
||||
"q": "Dateiname oder Titel",
|
||||
"category": "Kategorie",
|
||||
"allCategories": "Alle Kategorien",
|
||||
"customer": "Kunde",
|
||||
"allCustomers": "Alle Kunden",
|
||||
"site": "Objekt",
|
||||
"allSites": "Alle Objekte",
|
||||
"workOrder": "Auftragsnummer",
|
||||
"latestOnly": "Nur aktuelle Versionen",
|
||||
"apply": "Filtern",
|
||||
"reset": "Zurücksetzen"
|
||||
},
|
||||
"pagination": {
|
||||
"prev": "Zurück",
|
||||
"next": "Weiter",
|
||||
"summary": "{from}–{to} von {total}"
|
||||
},
|
||||
"category": {
|
||||
"order_confirmation": "Auftragsbestätigung",
|
||||
"technical_drawing": "Technische Zeichnung",
|
||||
"floor_plan": "Grundriss",
|
||||
"wiring_diagram": "Schaltplan",
|
||||
"assembly_instructions": "Montageanleitung",
|
||||
"safety_document": "Sicherheitsunterlage",
|
||||
"product_document": "Produktunterlage",
|
||||
"customer_note": "Kundenhinweis",
|
||||
"work_record": "Arbeitsnachweis",
|
||||
"daily_report": "Tagesbericht",
|
||||
"completion_report": "Abschlussbericht",
|
||||
"customer_approval": "Kundenfreigabe",
|
||||
"photo": "Foto",
|
||||
"voice_note": "Sprachnotiz",
|
||||
"signature": "Unterschrift",
|
||||
"other": "Sonstiges Dokument"
|
||||
},
|
||||
"visibility": {
|
||||
"backoffice_only": "Nur Backoffice",
|
||||
"team_lead": "Für Teamleiter",
|
||||
"team": "Für Montageteam",
|
||||
"customer_report": "Für Kundenbericht freigegeben"
|
||||
},
|
||||
"link": {
|
||||
"customer": "Kunde",
|
||||
"site": "Objekt",
|
||||
"workOrder": "Auftrag",
|
||||
"none": "Ohne Zuordnung"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Dokument hochladen",
|
||||
"file": "Datei",
|
||||
"fileHint": "PDF bis 25 MB, Bilder (JPEG, PNG, WebP, HEIC) bis 15 MB, Audio bis 20 MB.",
|
||||
"titleField": "Titel (optional)",
|
||||
"category": "Kategorie",
|
||||
"visibility": "Sichtbarkeit",
|
||||
"submit": "Hochladen",
|
||||
"newVersion": "Neue Version",
|
||||
"newVersionTitle": "Neue Version hochladen",
|
||||
"newVersionOf": "Neue Version von „{name}“",
|
||||
"ok": "Dokument gespeichert."
|
||||
},
|
||||
"versions": {
|
||||
"label": "v{version}",
|
||||
"older": "{count, plural, one {# ältere Version} other {# ältere Versionen}}",
|
||||
"latest": "aktuell"
|
||||
},
|
||||
"actions": {
|
||||
"download": "Herunterladen",
|
||||
"edit": "Bearbeiten",
|
||||
"delete": "Entfernen",
|
||||
"deleteConfirm": "Diese Version entfernen?"
|
||||
},
|
||||
"edit": {
|
||||
"title": "Dokument bearbeiten",
|
||||
"titleField": "Titel",
|
||||
"save": "Speichern",
|
||||
"saving": "Speichert…",
|
||||
"cancel": "Abbrechen"
|
||||
},
|
||||
"uploadErrors": {
|
||||
"empty_file": "Bitte eine Datei auswählen.",
|
||||
"too_large": "Die Datei ist zu groß.",
|
||||
"unsupported_type": "Dateityp nicht erlaubt. Erlaubt sind PDF, JPEG, PNG, WebP, HEIC und Audio.",
|
||||
"type_mismatch": "Dateiinhalt passt nicht zum Dateityp.",
|
||||
"malware": "Die Datei wurde vom Virenscan abgelehnt.",
|
||||
"scanner_unavailable": "Virenscan nicht erreichbar. Bitte später erneut versuchen.",
|
||||
"visibility_not_allowed": "Diese Sichtbarkeit ist nicht erlaubt.",
|
||||
"lineage_not_found": "Ursprungsdokument nicht gefunden.",
|
||||
"invalid_category": "Bitte eine Kategorie wählen.",
|
||||
"site_not_found": "Objekt nicht gefunden.",
|
||||
"customer_not_found": "Kunde nicht gefunden.",
|
||||
"forbidden": "Dafür fehlt die Berechtigung.",
|
||||
"not_found": "Auftrag nicht gefunden.",
|
||||
"invalid": "Upload ungültig.",
|
||||
"generic": "Upload fehlgeschlagen. Bitte erneut versuchen."
|
||||
},
|
||||
"errors": {
|
||||
"invalid": "Bitte die Eingaben prüfen.",
|
||||
"not_found": "Dokument nicht gefunden.",
|
||||
"forbidden": "Dafür fehlt die Berechtigung.",
|
||||
"conflict": "Das geht so nicht.",
|
||||
"blocked": "Aktion aktuell nicht möglich.",
|
||||
"generic": "Das hat nicht geklappt. Bitte erneut versuchen.",
|
||||
"visibility_not_allowed": "Diese Sichtbarkeit ist nicht erlaubt."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"title": "Objekte",
|
||||
"crumb": "Stammdaten",
|
||||
"sub": "Baustellen, Filialen und Anlagen mit Hinweisen, Dokumenten und Einsatzhistorie.",
|
||||
"new": "Neues Objekt",
|
||||
"searchLabel": "Suche",
|
||||
"searchPlaceholder": "Objekt, Adresse oder Kunde",
|
||||
"filter": {
|
||||
"status": "Status",
|
||||
"all": "Alle",
|
||||
"apply": "Filtern",
|
||||
"reset": "Zurücksetzen"
|
||||
},
|
||||
"status": {
|
||||
"active": "Aktiv",
|
||||
"inactive": "Inaktiv",
|
||||
"provisional": "Vorläufig"
|
||||
},
|
||||
"columns": {
|
||||
"name": "Objekt",
|
||||
"customer": "Kunde",
|
||||
"address": "Adresse",
|
||||
"orders": "Aufträge",
|
||||
"status": "Status"
|
||||
},
|
||||
"empty": "Keine Objekte gefunden.",
|
||||
"pagination": {
|
||||
"prev": "Zurück",
|
||||
"next": "Weiter",
|
||||
"summary": "{from}–{to} von {total}"
|
||||
},
|
||||
"fields": {
|
||||
"customerId": "Kunde",
|
||||
"selectCustomer": "Kunden auswählen",
|
||||
"name": "Objektbezeichnung",
|
||||
"street": "Straße",
|
||||
"houseNumber": "Hausnr.",
|
||||
"postalCode": "PLZ",
|
||||
"city": "Ort",
|
||||
"country": "Land",
|
||||
"contactId": "Ansprechpartner vor Ort",
|
||||
"noContact": "Kein hinterlegter Kontakt",
|
||||
"onSiteContact": "Ansprechpartner vor Ort (Freitext)",
|
||||
"phone": "Telefon vor Ort",
|
||||
"accessNotes": "Zugangshinweise",
|
||||
"parkingNotes": "Parkhinweise",
|
||||
"safetyNotes": "Sicherheitsinformationen",
|
||||
"technicalNotes": "Technische Hinweise",
|
||||
"status": "Status",
|
||||
"latitude": "Breitengrad",
|
||||
"longitude": "Längengrad"
|
||||
},
|
||||
"sections": {
|
||||
"base": "Objekt",
|
||||
"address": "Adresse",
|
||||
"onSite": "Vor Ort",
|
||||
"notes": "Hinweise für den Einsatz",
|
||||
"geo": "Koordinaten (optional)"
|
||||
},
|
||||
"form": {
|
||||
"createTitle": "Objekt anlegen",
|
||||
"createSub": "Jedes Objekt gehört zu einem Kunden.",
|
||||
"editTitle": "Objekt bearbeiten",
|
||||
"create": "Objekt anlegen",
|
||||
"save": "Speichern",
|
||||
"saving": "Speichert…",
|
||||
"cancel": "Abbrechen",
|
||||
"saved": "Gespeichert.",
|
||||
"contactHint": "Kontakte des Kunden stehen nach dem Anlegen zur Auswahl."
|
||||
},
|
||||
"tabs": {
|
||||
"master": "Stammdaten",
|
||||
"documents": "Dokumente",
|
||||
"history": "Historie"
|
||||
},
|
||||
"detail": {
|
||||
"edit": "Bearbeiten",
|
||||
"delete": "Löschen",
|
||||
"deleteTitle": "Objekt löschen",
|
||||
"deleteHint": "Das Objekt wird ausgeblendet. Historie und Nachweise bleiben erhalten. Nur ohne offene Aufträge möglich.",
|
||||
"deleteConfirm": "Objekt löschen",
|
||||
"map": "Karte öffnen (OpenStreetMap)",
|
||||
"noMap": "Keine Adresse für die Karte",
|
||||
"customer": "Kunde",
|
||||
"back": "Zur Objektliste",
|
||||
"noNotes": "Keine Hinweise hinterlegt."
|
||||
},
|
||||
"history": {
|
||||
"title": "Einsatzhistorie",
|
||||
"onlyApproved": "Nur freigegebene",
|
||||
"showAll": "Alle Einsätze",
|
||||
"approvedOnlyHint": "Angezeigt werden freigegebene Einsätze.",
|
||||
"empty": "Noch keine Einsätze an diesem Objekt.",
|
||||
"workDone": "Durchgeführte Arbeiten",
|
||||
"noWorkDone": "Keine Tätigkeiten erfasst.",
|
||||
"materials": "Material",
|
||||
"noMaterials": "Kein Material erfasst.",
|
||||
"photos": "{count, plural, =0 {Keine Fotos} one {# Foto} other {# Fotos}}",
|
||||
"reports": "Berichte",
|
||||
"noReports": "Kein freigegebener Bericht.",
|
||||
"reportType": {
|
||||
"daily": "Tagesbericht",
|
||||
"completion": "Abschlussbericht"
|
||||
},
|
||||
"reportLink": "{type} v{version} vom {date}",
|
||||
"signed": "Kundenunterschrift liegt vor",
|
||||
"notSigned": "Keine Kundenunterschrift",
|
||||
"followUp": "Offene Folgearbeiten",
|
||||
"emergency": "Notdienst",
|
||||
"noTeam": "Kein Team",
|
||||
"openOrder": "Auftrag öffnen"
|
||||
},
|
||||
"statusGroup": {
|
||||
"new": "Neu",
|
||||
"planned": "Geplant",
|
||||
"en_route": "Unterwegs",
|
||||
"in_progress": "In Arbeit",
|
||||
"documentation_incomplete": "Dokumentation unvollständig",
|
||||
"in_review": "Zur Prüfung",
|
||||
"ready_for_billing": "Bereit zur Abrechnung",
|
||||
"billed": "Abgerechnet",
|
||||
"cancelled": "Storniert"
|
||||
},
|
||||
"errors": {
|
||||
"invalid": "Bitte die markierten Felder prüfen.",
|
||||
"not_found": "Datensatz nicht gefunden.",
|
||||
"forbidden": "Dafür fehlt die Berechtigung.",
|
||||
"conflict": "Das geht so nicht: Der Datensatz wurde geändert.",
|
||||
"blocked": "Aktion aktuell nicht möglich.",
|
||||
"generic": "Das hat nicht geklappt. Bitte erneut versuchen.",
|
||||
"required": "Pflichtfeld",
|
||||
"invalidField": "Eingabe prüfen",
|
||||
"customer_not_found": "Kunde nicht gefunden.",
|
||||
"contact_mismatch": "Der Kontakt gehört nicht zu diesem Kunden.",
|
||||
"open_work_orders": "Es gibt noch offene Aufträge."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"title": "Teams",
|
||||
"crumb": "Stammdaten",
|
||||
"sub": "Montageteams mit Teamleitung, Mitgliedern und Einsatzgebiet.",
|
||||
"new": "Neues Team",
|
||||
"showInactive": "Inaktive anzeigen",
|
||||
"hideInactive": "Inaktive ausblenden",
|
||||
"empty": "Noch keine Teams.",
|
||||
"columns": {
|
||||
"name": "Team",
|
||||
"leader": "Teamleiter",
|
||||
"members": "Mitglieder",
|
||||
"phone": "Telefon",
|
||||
"vehicle": "Fahrzeug",
|
||||
"area": "Einsatzgebiet",
|
||||
"status": "Status"
|
||||
},
|
||||
"status": {
|
||||
"active": "Aktiv",
|
||||
"inactive": "Inaktiv"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Teamname",
|
||||
"leaderUserId": "Teamleiter",
|
||||
"noLeader": "Kein Teamleiter",
|
||||
"status": "Status",
|
||||
"phone": "Telefon",
|
||||
"vehicle": "Fahrzeug",
|
||||
"area": "Einsatzgebiet",
|
||||
"notes": "Interne Hinweise"
|
||||
},
|
||||
"members": {
|
||||
"title": "Mitglieder",
|
||||
"add": "Mitglied hinzufügen",
|
||||
"remove": "Entfernen",
|
||||
"user": "Person",
|
||||
"selectUser": "Person auswählen",
|
||||
"validFrom": "Gültig ab",
|
||||
"validTo": "Gültig bis",
|
||||
"validToHint": "Leer = unbefristet",
|
||||
"empty": "Noch keine Mitglieder.",
|
||||
"current": "aktuell",
|
||||
"ended": "beendet",
|
||||
"upcoming": "ab {date}",
|
||||
"count": "{count, plural, =0 {Keine Mitglieder} one {# Mitglied} other {# Mitglieder}}"
|
||||
},
|
||||
"form": {
|
||||
"createTitle": "Team anlegen",
|
||||
"editTitle": "Team bearbeiten",
|
||||
"sub": "Mitglieder kommen aus den aktiven Nutzern des Mandanten.",
|
||||
"save": "Speichern",
|
||||
"create": "Team anlegen",
|
||||
"saving": "Speichert…",
|
||||
"cancel": "Abbrechen",
|
||||
"delete": "Team löschen",
|
||||
"deleteHint": "Das Team wird ausgeblendet. Nur ohne offene Aufträge möglich.",
|
||||
"deleteConfirm": "Team wirklich löschen?"
|
||||
},
|
||||
"readOnly": "Nur Lesezugriff.",
|
||||
"errors": {
|
||||
"invalid": "Bitte die markierten Felder prüfen.",
|
||||
"not_found": "Team nicht gefunden.",
|
||||
"forbidden": "Dafür fehlt die Berechtigung.",
|
||||
"conflict": "Das geht so nicht: Der Name ist bereits vergeben.",
|
||||
"blocked": "Aktion aktuell nicht möglich.",
|
||||
"generic": "Das hat nicht geklappt. Bitte erneut versuchen.",
|
||||
"required": "Pflichtfeld",
|
||||
"invalidField": "Eingabe prüfen",
|
||||
"duplicate_member": "Eine Person ist mehrfach eingetragen.",
|
||||
"inactive_user": "Nur aktive Nutzer des Mandanten sind möglich.",
|
||||
"name_taken": "Teamname ist bereits vergeben.",
|
||||
"valid_to_before_from": "„Gültig bis“ liegt vor „Gültig ab“.",
|
||||
"open_work_orders": "Dem Team sind noch offene Aufträge zugewiesen."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"title": "Customers",
|
||||
"crumb": "Master data",
|
||||
"sub": "Customers, contacts and sites in one place.",
|
||||
"new": "New customer",
|
||||
"searchLabel": "Search",
|
||||
"searchPlaceholder": "Name, customer no., city or e-mail",
|
||||
"filter": {
|
||||
"status": "Status",
|
||||
"all": "All (without merged)",
|
||||
"apply": "Filter",
|
||||
"reset": "Reset"
|
||||
},
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"provisional": "Provisional",
|
||||
"merged": "Merged"
|
||||
},
|
||||
"provisionalHint": "Provisional – back office review required",
|
||||
"columns": {
|
||||
"number": "Customer no.",
|
||||
"name": "Name",
|
||||
"city": "City",
|
||||
"contact": "Contact",
|
||||
"sites": "Sites",
|
||||
"status": "Status"
|
||||
},
|
||||
"empty": "No customers found.",
|
||||
"pagination": {
|
||||
"prev": "Previous",
|
||||
"next": "Next",
|
||||
"summary": "{from}–{to} of {total}"
|
||||
},
|
||||
"fields": {
|
||||
"customerNumber": "Customer number",
|
||||
"customerNumberHint": "Leave empty to use the next free number.",
|
||||
"companyName": "Company name",
|
||||
"salutation": "Salutation",
|
||||
"firstName": "First name",
|
||||
"lastName": "Last name",
|
||||
"street": "Street",
|
||||
"houseNumber": "No.",
|
||||
"postalCode": "Postal code",
|
||||
"city": "City",
|
||||
"country": "Country",
|
||||
"phone": "Phone",
|
||||
"mobile": "Mobile",
|
||||
"email": "E-mail",
|
||||
"notes": "General notes",
|
||||
"billingNotes": "Billing notes",
|
||||
"status": "Status",
|
||||
"createdAt": "Created",
|
||||
"updatedAt": "Updated"
|
||||
},
|
||||
"sections": {
|
||||
"customer": "Customer",
|
||||
"address": "Address",
|
||||
"contact": "Reachability",
|
||||
"notes": "Notes"
|
||||
},
|
||||
"form": {
|
||||
"createTitle": "Create customer",
|
||||
"createSub": "Business or private customer. Company name or last name is required.",
|
||||
"editTitle": "Edit customer",
|
||||
"create": "Create customer",
|
||||
"save": "Save",
|
||||
"saving": "Saving…",
|
||||
"cancel": "Cancel",
|
||||
"close": "Close",
|
||||
"saved": "Saved.",
|
||||
"required": "Required"
|
||||
},
|
||||
"duplicates": {
|
||||
"title": "Possible duplicate",
|
||||
"hint": "These customers look similar. Use an existing customer or create a new one anyway.",
|
||||
"open": "Open existing customer",
|
||||
"createAnyway": "Create anyway",
|
||||
"score": "Match {percent} %",
|
||||
"reasons": {
|
||||
"customer_number": "Customer number",
|
||||
"company_name": "Name",
|
||||
"address": "Address",
|
||||
"email": "E-mail",
|
||||
"phone": "Phone"
|
||||
}
|
||||
},
|
||||
"tabs": {
|
||||
"master": "Master data",
|
||||
"contacts": "Contacts",
|
||||
"sites": "Sites",
|
||||
"orders": "Work orders",
|
||||
"documents": "Documents"
|
||||
},
|
||||
"detail": {
|
||||
"edit": "Edit",
|
||||
"confirm": "Confirm customer",
|
||||
"confirmHint": "Take over the provisional customer as active after review.",
|
||||
"merge": "Merge",
|
||||
"delete": "Delete",
|
||||
"deleteTitle": "Delete customer",
|
||||
"deleteHint": "The customer is hidden. Work orders, reports and records are kept. Only possible without open work orders.",
|
||||
"deleteConfirm": "Delete customer",
|
||||
"mergedInto": "This customer was merged into:",
|
||||
"mergedOk": "Customers merged. Contacts, sites, work orders and documents are now here.",
|
||||
"back": "Back to customers",
|
||||
"readOnly": "Read-only access."
|
||||
},
|
||||
"contacts": {
|
||||
"new": "Add contact",
|
||||
"createTitle": "Add contact",
|
||||
"editTitle": "Edit contact",
|
||||
"empty": "No contacts yet.",
|
||||
"delete": "Remove",
|
||||
"deleteConfirm": "Remove contact?",
|
||||
"preferred": "preferred",
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"role": "Role",
|
||||
"phone": "Phone",
|
||||
"mobile": "Mobile",
|
||||
"email": "E-mail",
|
||||
"preferredChannel": "Preferred channel",
|
||||
"notes": "Remarks"
|
||||
},
|
||||
"channel": {
|
||||
"phone": "Phone",
|
||||
"mobile": "Mobile",
|
||||
"email": "E-mail",
|
||||
"none": "Not specified"
|
||||
}
|
||||
},
|
||||
"sites": {
|
||||
"empty": "No sites yet.",
|
||||
"new": "Create site"
|
||||
},
|
||||
"orders": {
|
||||
"empty": "No visible work orders.",
|
||||
"hint": "Read-only. Work orders are edited in the work orders area.",
|
||||
"columns": {
|
||||
"number": "Order",
|
||||
"title": "Title",
|
||||
"site": "Site",
|
||||
"team": "Team",
|
||||
"date": "Scheduled",
|
||||
"status": "Status"
|
||||
}
|
||||
},
|
||||
"merge": {
|
||||
"title": "Merge customers",
|
||||
"sub": "Contacts, sites, work orders and documents are moved to the target customer. This customer is marked as merged.",
|
||||
"source": "Will be merged",
|
||||
"target": "Target customer",
|
||||
"candidates": "Possible duplicates",
|
||||
"noCandidates": "No similar customers found. Choose the target by customer number.",
|
||||
"targetNumber": "Or customer number of the target",
|
||||
"confirm": "Records checked. Confirm merge – this is not undone automatically.",
|
||||
"submit": "Merge"
|
||||
},
|
||||
"errors": {
|
||||
"invalid": "Please check the highlighted fields.",
|
||||
"not_found": "Record not found.",
|
||||
"forbidden": "You are not allowed to do this.",
|
||||
"conflict": "Not possible: the record was changed or is already taken.",
|
||||
"blocked": "Action currently not possible.",
|
||||
"generic": "That did not work. Please try again.",
|
||||
"required": "Required",
|
||||
"invalidField": "Check input",
|
||||
"name_required": "Enter a company name or last name.",
|
||||
"number_taken": "Customer number is already taken.",
|
||||
"number_allocation": "No free customer number found.",
|
||||
"open_work_orders": "There are still open work orders.",
|
||||
"not_provisional": "The customer is not provisional.",
|
||||
"already_merged": "One of the customers is already merged.",
|
||||
"same_customer": "Source and target are the same customer.",
|
||||
"target_required": "Select a target customer.",
|
||||
"target_not_found": "Customer number not found.",
|
||||
"confirm_required": "Please confirm the merge."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"title": "Documents",
|
||||
"crumb": "Storage",
|
||||
"sub": "All files for customers, sites and work orders – with version, checksum and visibility.",
|
||||
"empty": "No documents found.",
|
||||
"columns": {
|
||||
"document": "Document",
|
||||
"category": "Category",
|
||||
"link": "Linked to",
|
||||
"visibility": "Visibility",
|
||||
"version": "Version",
|
||||
"size": "Size",
|
||||
"uploaded": "Uploaded"
|
||||
},
|
||||
"filter": {
|
||||
"q": "File name or title",
|
||||
"category": "Category",
|
||||
"allCategories": "All categories",
|
||||
"customer": "Customer",
|
||||
"allCustomers": "All customers",
|
||||
"site": "Site",
|
||||
"allSites": "All sites",
|
||||
"workOrder": "Work order number",
|
||||
"latestOnly": "Latest versions only",
|
||||
"apply": "Filter",
|
||||
"reset": "Reset"
|
||||
},
|
||||
"pagination": {
|
||||
"prev": "Previous",
|
||||
"next": "Next",
|
||||
"summary": "{from}–{to} of {total}"
|
||||
},
|
||||
"category": {
|
||||
"order_confirmation": "Order confirmation",
|
||||
"technical_drawing": "Technical drawing",
|
||||
"floor_plan": "Floor plan",
|
||||
"wiring_diagram": "Wiring diagram",
|
||||
"assembly_instructions": "Assembly instructions",
|
||||
"safety_document": "Safety document",
|
||||
"product_document": "Product document",
|
||||
"customer_note": "Customer note",
|
||||
"work_record": "Work record",
|
||||
"daily_report": "Daily report",
|
||||
"completion_report": "Completion report",
|
||||
"customer_approval": "Customer approval",
|
||||
"photo": "Photo",
|
||||
"voice_note": "Voice note",
|
||||
"signature": "Signature",
|
||||
"other": "Other document"
|
||||
},
|
||||
"visibility": {
|
||||
"backoffice_only": "Back office only",
|
||||
"team_lead": "Team leads",
|
||||
"team": "Installation team",
|
||||
"customer_report": "Released for customer report"
|
||||
},
|
||||
"link": {
|
||||
"customer": "Customer",
|
||||
"site": "Site",
|
||||
"workOrder": "Work order",
|
||||
"none": "Not linked"
|
||||
},
|
||||
"upload": {
|
||||
"title": "Upload document",
|
||||
"file": "File",
|
||||
"fileHint": "PDF up to 25 MB, images (JPEG, PNG, WebP, HEIC) up to 15 MB, audio up to 20 MB.",
|
||||
"titleField": "Title (optional)",
|
||||
"category": "Category",
|
||||
"visibility": "Visibility",
|
||||
"submit": "Upload",
|
||||
"newVersion": "New version",
|
||||
"newVersionTitle": "Upload new version",
|
||||
"newVersionOf": "New version of \"{name}\"",
|
||||
"ok": "Document saved."
|
||||
},
|
||||
"versions": {
|
||||
"label": "v{version}",
|
||||
"older": "{count, plural, one {# older version} other {# older versions}}",
|
||||
"latest": "latest"
|
||||
},
|
||||
"actions": {
|
||||
"download": "Download",
|
||||
"edit": "Edit",
|
||||
"delete": "Remove",
|
||||
"deleteConfirm": "Remove this version?"
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edit document",
|
||||
"titleField": "Title",
|
||||
"save": "Save",
|
||||
"saving": "Saving…",
|
||||
"cancel": "Cancel"
|
||||
},
|
||||
"uploadErrors": {
|
||||
"empty_file": "Please select a file.",
|
||||
"too_large": "The file is too large.",
|
||||
"unsupported_type": "File type not allowed. Allowed: PDF, JPEG, PNG, WebP, HEIC and audio.",
|
||||
"type_mismatch": "File content does not match the file type.",
|
||||
"malware": "The file was rejected by the virus scan.",
|
||||
"scanner_unavailable": "Virus scan unavailable. Please try again later.",
|
||||
"visibility_not_allowed": "This visibility is not allowed.",
|
||||
"lineage_not_found": "Original document not found.",
|
||||
"invalid_category": "Please choose a category.",
|
||||
"site_not_found": "Site not found.",
|
||||
"customer_not_found": "Customer not found.",
|
||||
"forbidden": "You are not allowed to do this.",
|
||||
"not_found": "Work order not found.",
|
||||
"invalid": "Invalid upload.",
|
||||
"generic": "Upload failed. Please try again."
|
||||
},
|
||||
"errors": {
|
||||
"invalid": "Please check your input.",
|
||||
"not_found": "Document not found.",
|
||||
"forbidden": "You are not allowed to do this.",
|
||||
"conflict": "Not possible.",
|
||||
"blocked": "Action currently not possible.",
|
||||
"generic": "That did not work. Please try again.",
|
||||
"visibility_not_allowed": "This visibility is not allowed."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"title": "Sites",
|
||||
"crumb": "Master data",
|
||||
"sub": "Construction sites, branches and installations with notes, documents and job history.",
|
||||
"new": "New site",
|
||||
"searchLabel": "Search",
|
||||
"searchPlaceholder": "Site, address or customer",
|
||||
"filter": {
|
||||
"status": "Status",
|
||||
"all": "All",
|
||||
"apply": "Filter",
|
||||
"reset": "Reset"
|
||||
},
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"provisional": "Provisional"
|
||||
},
|
||||
"columns": {
|
||||
"name": "Site",
|
||||
"customer": "Customer",
|
||||
"address": "Address",
|
||||
"orders": "Work orders",
|
||||
"status": "Status"
|
||||
},
|
||||
"empty": "No sites found.",
|
||||
"pagination": {
|
||||
"prev": "Previous",
|
||||
"next": "Next",
|
||||
"summary": "{from}–{to} of {total}"
|
||||
},
|
||||
"fields": {
|
||||
"customerId": "Customer",
|
||||
"selectCustomer": "Select customer",
|
||||
"name": "Site name",
|
||||
"street": "Street",
|
||||
"houseNumber": "No.",
|
||||
"postalCode": "Postal code",
|
||||
"city": "City",
|
||||
"country": "Country",
|
||||
"contactId": "On-site contact",
|
||||
"noContact": "No stored contact",
|
||||
"onSiteContact": "On-site contact (free text)",
|
||||
"phone": "On-site phone",
|
||||
"accessNotes": "Access notes",
|
||||
"parkingNotes": "Parking notes",
|
||||
"safetyNotes": "Safety information",
|
||||
"technicalNotes": "Technical notes",
|
||||
"status": "Status",
|
||||
"latitude": "Latitude",
|
||||
"longitude": "Longitude"
|
||||
},
|
||||
"sections": {
|
||||
"base": "Site",
|
||||
"address": "Address",
|
||||
"onSite": "On site",
|
||||
"notes": "Notes for the job",
|
||||
"geo": "Coordinates (optional)"
|
||||
},
|
||||
"form": {
|
||||
"createTitle": "Create site",
|
||||
"createSub": "Every site belongs to a customer.",
|
||||
"editTitle": "Edit site",
|
||||
"create": "Create site",
|
||||
"save": "Save",
|
||||
"saving": "Saving…",
|
||||
"cancel": "Cancel",
|
||||
"saved": "Saved.",
|
||||
"contactHint": "The customer's contacts can be selected after creating the site."
|
||||
},
|
||||
"tabs": {
|
||||
"master": "Master data",
|
||||
"documents": "Documents",
|
||||
"history": "History"
|
||||
},
|
||||
"detail": {
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"deleteTitle": "Delete site",
|
||||
"deleteHint": "The site is hidden. History and records are kept. Only possible without open work orders.",
|
||||
"deleteConfirm": "Delete site",
|
||||
"map": "Open map (OpenStreetMap)",
|
||||
"noMap": "No address for the map",
|
||||
"customer": "Customer",
|
||||
"back": "Back to sites",
|
||||
"noNotes": "No notes stored."
|
||||
},
|
||||
"history": {
|
||||
"title": "Job history",
|
||||
"onlyApproved": "Released only",
|
||||
"showAll": "All jobs",
|
||||
"approvedOnlyHint": "Showing released jobs.",
|
||||
"empty": "No jobs at this site yet.",
|
||||
"workDone": "Work carried out",
|
||||
"noWorkDone": "No activities recorded.",
|
||||
"materials": "Material",
|
||||
"noMaterials": "No material recorded.",
|
||||
"photos": "{count, plural, =0 {No photos} one {# photo} other {# photos}}",
|
||||
"reports": "Reports",
|
||||
"noReports": "No released report.",
|
||||
"reportType": {
|
||||
"daily": "Daily report",
|
||||
"completion": "Completion report"
|
||||
},
|
||||
"reportLink": "{type} v{version} of {date}",
|
||||
"signed": "Customer signature available",
|
||||
"notSigned": "No customer signature",
|
||||
"followUp": "Open follow-up work",
|
||||
"emergency": "Emergency",
|
||||
"noTeam": "No team",
|
||||
"openOrder": "Open work order"
|
||||
},
|
||||
"statusGroup": {
|
||||
"new": "New",
|
||||
"planned": "Planned",
|
||||
"en_route": "On the way",
|
||||
"in_progress": "In progress",
|
||||
"documentation_incomplete": "Documentation incomplete",
|
||||
"in_review": "In review",
|
||||
"ready_for_billing": "Ready for billing",
|
||||
"billed": "Billed",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"errors": {
|
||||
"invalid": "Please check the highlighted fields.",
|
||||
"not_found": "Record not found.",
|
||||
"forbidden": "You are not allowed to do this.",
|
||||
"conflict": "Not possible: the record was changed.",
|
||||
"blocked": "Action currently not possible.",
|
||||
"generic": "That did not work. Please try again.",
|
||||
"required": "Required",
|
||||
"invalidField": "Check input",
|
||||
"customer_not_found": "Customer not found.",
|
||||
"contact_mismatch": "The contact does not belong to this customer.",
|
||||
"open_work_orders": "There are still open work orders."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"title": "Teams",
|
||||
"crumb": "Master data",
|
||||
"sub": "Installation teams with team lead, members and service area.",
|
||||
"new": "New team",
|
||||
"showInactive": "Show inactive",
|
||||
"hideInactive": "Hide inactive",
|
||||
"empty": "No teams yet.",
|
||||
"columns": {
|
||||
"name": "Team",
|
||||
"leader": "Team lead",
|
||||
"members": "Members",
|
||||
"phone": "Phone",
|
||||
"vehicle": "Vehicle",
|
||||
"area": "Service area",
|
||||
"status": "Status"
|
||||
},
|
||||
"status": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Team name",
|
||||
"leaderUserId": "Team lead",
|
||||
"noLeader": "No team lead",
|
||||
"status": "Status",
|
||||
"phone": "Phone",
|
||||
"vehicle": "Vehicle",
|
||||
"area": "Service area",
|
||||
"notes": "Internal notes"
|
||||
},
|
||||
"members": {
|
||||
"title": "Members",
|
||||
"add": "Add member",
|
||||
"remove": "Remove",
|
||||
"user": "Person",
|
||||
"selectUser": "Select person",
|
||||
"validFrom": "Valid from",
|
||||
"validTo": "Valid until",
|
||||
"validToHint": "Empty = unlimited",
|
||||
"empty": "No members yet.",
|
||||
"current": "current",
|
||||
"ended": "ended",
|
||||
"upcoming": "from {date}",
|
||||
"count": "{count, plural, =0 {No members} one {# member} other {# members}}"
|
||||
},
|
||||
"form": {
|
||||
"createTitle": "Create team",
|
||||
"editTitle": "Edit team",
|
||||
"sub": "Members are active users of the tenant.",
|
||||
"save": "Save",
|
||||
"create": "Create team",
|
||||
"saving": "Saving…",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete team",
|
||||
"deleteHint": "The team is hidden. Only possible without open work orders.",
|
||||
"deleteConfirm": "Really delete the team?"
|
||||
},
|
||||
"readOnly": "Read-only access.",
|
||||
"errors": {
|
||||
"invalid": "Please check the highlighted fields.",
|
||||
"not_found": "Team not found.",
|
||||
"forbidden": "You are not allowed to do this.",
|
||||
"conflict": "Not possible: the name is already taken.",
|
||||
"blocked": "Action currently not possible.",
|
||||
"generic": "That did not work. Please try again.",
|
||||
"required": "Required",
|
||||
"invalidField": "Check input",
|
||||
"duplicate_member": "A person is listed more than once.",
|
||||
"inactive_user": "Only active users of the tenant can be added.",
|
||||
"name_taken": "Team name is already taken.",
|
||||
"valid_to_before_from": "\"Valid until\" is before \"valid from\".",
|
||||
"open_work_orders": "Open work orders are still assigned to the team."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user