diff --git a/packages/compas-open-scd/src/translations/de.ts b/packages/compas-open-scd/src/translations/de.ts index b4421b25be..955041b011 100644 --- a/packages/compas-open-scd/src/translations/de.ts +++ b/packages/compas-open-scd/src/translations/de.ts @@ -1,961 +1,9 @@ import { Translations } from './loader.js'; export const de: Translations = { - scl: { - id: 'ID', - name: 'Name', - desc: 'Beschreibung', - ord: 'Rang', - value: 'Wert', - EnumVal: 'Enum Wert', - EnumType: 'Enum Typ', - DA: 'Datenattribut', - DO: 'Datenobjekt', - DAType: 'Datenattribut Typ', - DOType: 'Datenobjekt Typ', - CDC: ' Datenklasse nach 7-3', - Report: 'Report', - LN: 'Logischer Knoten', - bType: 'Basic type', - type: 'Type', - sAddr: 'Short address', - valKind: 'Value kind', - valImport: 'Import value', - fc: 'Funktionale Einschränkung', - LNodeType: 'Logischer Knoten Type', - lnClass: 'Klasse logischer Knoten', - accessControl: 'Zugriffskontrolle', - transient: 'Datenpunkt transient', - Val: 'Standardwert', - dchg: 'Detenänderung ist Auslöser', - qchg: 'Qualitätsanderung ist Auslöser', - dupd: 'Datenupdate ist Auslöser', - period: 'Periodisch übertragen', - gi: 'Manuelle Abfrage', - fixedOffs: 'Fester Offset', - securityEnable: 'Aktive Sicherungsmaßnahmen', - DataSet: 'Datensatz', - Communication: 'Kommunikation', - TrgOps: 'Triggerbedingungen', - OptFields: 'Optionale felder', - multicast: 'SMV nach IEC 61850 9-2', - smpMod: 'Abtast-Art', - smpRate: 'Abtastrate', - nofASDU: 'Abtastpunkte pro Datenpacket', - seqNum: 'Sequenznummer mitschicken', - timeStamp: 'Zeitstempel mitschicken', - dataSet: 'Datensatz-Reference mitschicken', - reasonCode: 'Was hat den Report getriggert?', - dataRef: 'Beschreibung der Datensatzes', - entryID: 'Entry ID mitschicken', - configRef: 'Konfigurations-Revision mitschicken', - bufOvfl: 'Überlauf des internen Speichers signalisieren', - indexed: 'Mehrere Instanzen möglich', - buffered: 'Gepufferter Report', - maxReport: 'Anzahl Instanzen', - bufTime: 'Min. Intervall zwischen zwei Reports', - intgPd: 'Intervall zwischen zwei periodischen Reports', - SmvOpts: 'Optionale Informationen', - refreshTime: 'Zeitstempel des Abtastwertes zu Telegram hinzufügen', - sampleRate: 'Abtastrate zu Telegram hinzufügen', - security: 'Potentiel in Zukunft für z.B. digitale Signature', - synchSourceId: 'Identität der Zeitquelle zu Telegram hinzufügen', - SampledValueControl: 'Sampled Value Kontrollblock', - iedName: 'Referenziertes IED', - ldInst: 'Referenziertes logisches Gerät', - prefix: 'Präfix des logischen Knotens', - lnInst: 'Instanz des logischen Knotens', - virtual: 'Virtuell', - phase: 'Phase', - }, - settings: { - title: 'Einstellungen', - language: 'Sprache', - languages: { de: 'Deutsch', en: 'Englisch (English)' }, - dark: 'Dunkles Design', - mode: 'Profimodus', - showieds: 'Zeige IEDs im Substation-Editor', - selectFileButton: 'Datei auswählen', - loadNsdTranslations: 'NSDoc-Dateien hochladen', - invalidFileNoIdFound: - "Ungültiges NSDoc ({{ filename }}); kein 'id'-Attribut in der Datei gefunden", - invalidNsdocVersion: - 'Die Version {{ id }} NSD ({{ nsdVersion }}) passt nicht zu der geladenen NSDoc ({{ filename }}, {{ nsdocVersion }})', - }, - menu: { - new: 'Neues projekt', - title: 'Menü', - viewLog: 'Protokoll anzeigen', - viewDiag: 'Daignose anzeigen', - }, - wizard: { - title: { - select: '{{tagName}} auswählen', - edit: '{{tagName}} bearbeiten', - add: '{{tagName}} hinzufügen', - }, - }, - openSCD: { - loading: 'Lade Projekt {{ name }}', - loaded: '{{ name }} geladen', - readError: '{{ name }} Lesefehler', - readAbort: '{{ name }} Leseabbruch', - }, - zeroline: { - iedsloading: 'IEDs werden geladen...', - showieds: 'IEDs im Substation-Editor anzeigen/ausblenden', - showfunctions: 'Funktionselemente in der Ansicht filtern', - commmap: 'Kommunikationszuordnung', - reportcontrol: 'Reports anzeigen', - gsecontrol: 'GOOSEs anzeigen', - smvcontrol: 'Sampled Values anzeigen', - }, - editing: { - node: 'Benutzerdefiniertes Objekt', - created: '{{ name }} hinzugefügt', - deleted: '{{ name }} entfernt', - moved: '{{ name }} verschoben', - updated: '{{ name }} bearbeitet', - import: '{{name}} importiert', - error: { - create: 'Konnte {{ name }} nicht hinzufügen', - update: 'Konnte {{ name }} nicht bearbeiten', - move: 'Konnte {{ name }} nicht verschieben', - duplicate: 'Konnte {{name}} nicht kopieren', - nameClash: - '{{ parent }} enthält bereits ein {{ child }} Kind namens "{{ name }}"', - idClash: 'Das Projekt enthält bereits die ID "{{ id }}"', - }, - }, - validator: { - schema: { - title: 'Projekt validieren', - valid: '{{ name }} erfolgreich validiert gegen XML-Schema', - invalid: '{{ name }} Schema-Validierung fehlgeschlagen', - fatal: 'Fataler Validierungsfehler', - loadError: 'Konnte XML-Schema {{ name }} nicht laden', - }, - templates: { - title: 'Templates validieren', - mandatoryChild: - '{{ tag }} {{ id }} fehlt ein obligatorisches {{ childTag }}-Kind {{ childId }}', - missingAttribute: - 'Das Attribut {{attr}} ist verpflichted und fehlt in {{element}}', - incorrectAttribute: - 'Das Attribut {{attr}} in Element {{element}} folgt nicht der Definition.', - missingReference: - '{{tag}} "{{name}}" hat eine ungültige Referenz - es fehlt der definierte Typ', - }, - }, - textfield: { - required: 'Pflichtfeld', - nonempty: 'Darf nicht leer sein', - noMultiplier: 'keiner', - unique: 'Darf sich nicht wiederholen', - }, - compare: { - compareButton: 'Starte Vergleich', - attributes: 'Attribute von {{ elementName }}', - children: 'Kindelemente von {{ elementName }}', - filterMutables: 'Projektspzifische Unterschiede ausblenden', - }, - log: { - name: 'Protokoll', - placeholder: - 'Hier werden Änderungen, Fehler und andere Meldungen angezeigt.', - snackbar: { - show: 'Anzeigen', - placeholder: 'Keine Fehler', - }, - }, - history: { - name: 'SCL History', - placeholder: 'Keine History', - noEntries: 'Keine Einträge in der SCL History', - }, - diag: { - name: 'Daignoseübersicht', - zeroissues: 'Es konnten keine Fehler in dem Projekt gefunden werden.', - placeholder: 'Hier werden Validierungsfehler angezeigt.', - missingnsd: - 'DataTypeTemplates können nicht validiert werden. Das Projekt muss die Version 2007B3 oder höher haben.', - }, - plugins: { - heading: 'Plug-ins', - editor: 'Editor', - menu: 'Menüeintrag', - requireDoc: 'Benötigt Dokument', - top: 'oben', - middle: 'mittig', - bottom: 'unten', - validator: 'Validator', - add: { - heading: 'Benutzerdefinierte plug-in', - warning: `Hier können Sie benutzerdefinierte plug-ins hinzufügen. - OpenSCD übernimmt hierfür keine Gewähr.`, - name: 'Name', - nameHelper: 'Lokaler Name der plug-in (frei wählbar)', - src: 'URL', - srcHelper: 'Die plug-in-URL des Herstellers', - }, - }, - substation: { - name: 'Schaltanlage', - missing: 'Keine Schaltanlage', - wizard: { - nameHelper: 'Name der Schaltanlage', - descHelper: 'Beschreibung der Schaltanlage', - title: { - add: 'Schaltanlage hinzufügen', - edit: 'Schaltanlage bearbeiten', - }, - }, - action: { - addvoltagelevel: 'Spannungsebene hinzufügen', - updatesubstation: 'Schaltanlage "{{name}}" bearbeitet', - }, - clone: { - redirect: 'LNode mitnehmen', - cloneclose: 'Einmal klonen', - cloneproc: 'Mehrfach klonen', - newname: 'Klonname', - }, - }, - iededitor: { - iedSelector: 'IED auswählen', - lnFilter: 'Filter für logische Knoten', - missing: 'Kein IED vorhanden', - toggleChildElements: 'Kindelemente umschalten', - settings: 'Services für IED or AccessPoint', - wizard: { - daTitle: 'DA Informationen anzeigen', - doTitle: 'DO Informationen anzeigen', - nsdocDescription: 'NSDoc Beschreibung', - doiDescription: 'Beschreibung des DOI', - daiDescription: 'Beschreibung des DAI', - ied: 'IED', - accessPoint: 'Zugangspunkt', - lDevice: 'Logisches Gerät', - lnPrefix: 'LN Präfix', - lnDescription: 'LN Beschreibung', - lnInst: 'LN Instanz', - doName: 'DO Name', - doCdc: 'DO Common Data Class', - daName: 'DA Name', - daFc: 'DA Functional Constraint', - daBType: 'DA Typ', - daValue: 'DA Wert', - }, - }, - ied: { - wizard: { - nameHelper: 'Name des IED', - descHelper: 'Beschreibung des IED', - title: { - edit: 'IED bearbeiten', - delete: 'IED mit Abhängigkeiten entfernen', - references: 'Gelöschte Abhängikeiten', - }, - }, - action: { - updateied: 'IED "{{name}}" bearbeitet', - deleteied: 'IED "{{name}}" entfernt', - }, - }, - ldevice: { - wizard: { - nameHelper: 'Name des Logisches Gerät', - noNameSupportHelper: 'IED unterstützt keine funktionale Benennung', - descHelper: 'Beschreibung des Logisches Gerät', - title: { - edit: 'Logisches Gerät bearbeiten', - }, - }, - }, - ln: { - wizard: { - title: { - edit: 'LN bearbeiten', - }, - descHelper: 'Logical Node Beschreibung', - lnTypeHelper: 'Logical Node Typ', - prefixHelper: 'Prefix des Logical Nodes', - lnClassHelper: 'Logical Node Klasse', - instHelper: 'Instanz', - } - }, - ln0: { - wizard: { - title: { - edit: 'LN0 bearbeiten', - }, - descHelper: 'Logical Node Beschreibung', - lnTypeHelper: 'Logical Node Typ', - lnClassHelper: 'Logical Node Klasse', - instHelper: 'Instanz', - } - }, - powertransformer: { - wizard: { - nameHelper: '`Name des Leistungstransformators', - descHelper: 'Beschreibung des Leistungstransformators', - typeHelper: 'Type des Leistungstransformators', - title: { - add: 'Leistungstransformator hinzufügen', - edit: 'Leistungstransformator bearbeiten', - }, - }, - }, - voltagelevel: { - name: 'Spannungsebene', - wizard: { - nameHelper: 'Name der Spannungsebene', - descHelper: 'Beschreibung der Spannungsebene', - nomFreqHelper: 'Nennfrequenz', - numPhaseHelper: 'Phasenanzahl', - voltageHelper: 'Nennspannung', - title: { - add: 'Spannungsebene hinzufügen', - edit: 'Spannungsebene bearbeiten', - }, - }, - action: { - updateVoltagelevel: 'Spannungsebene "{{name}}" bearbeitet', - }, - }, - line: { - name: 'Linie', - wizard: { - nameHelper: 'Liniename', - descHelper: 'Beschreibung des Linies', - typeHelper: 'Type des Linies', - title: { - add: 'Linie hinzufügen', - edit: 'Linie bearbeiten', - }, - }, - action: { - updateLine: 'Edited line "{{name}}"', - }, - }, - process: { - name: 'Process', - wizard: { - nameHelper: 'Processname', - descHelper: 'Beschreibung des Processes', - typeHelper: 'Type des Processes', - title: { - add: 'Process hinzufügen', - edit: 'Process bearbeiten', - }, - }, - action: { - updateProcess: 'Edited Process "{{name}}"', - }, - }, - bay: { - name: 'Feld', - wizard: { - nameHelper: 'Feldname', - descHelper: 'Beschreibung des Feldes', - title: { - add: 'Feld hinzufügen', - edit: 'Feld bearbeiten', - }, - }, - action: { - updateBay: 'Feld "{{name}}" bearbeitet', - }, - }, - conductingequipment: { - name: 'Primärelement', - wizard: { - nameHelper: 'Name des Primärelements', - descHelper: 'Beschreibung des Primärelements', - typeHelper: 'Type des Primärelements', - title: { - add: 'Primärelement hinzufügen', - edit: 'Primärelement bearbeiten', - }, - }, - unknownType: 'Unbekannter Typ', - }, - connectivitynode: { - name: 'Verbindungsknoten', - wizard: { - nameHelper: 'Verbindungsknoten Name', - pathNameHelper: 'Verbindungsknoten Beschreibung', - title: { - add: 'Verbindungsknoten hinzufügen', - edit: 'Verbindungsknoten bearbeiten', - }, - }, - }, - terminal: { - name: 'Anschluss', - wizard: { - nameHelper: 'Anschluss Name', - connectivityNodeHelper: 'Anschluss Verbindungsknoten', - cNodeNameHelper: 'Anschluss Verbindungsknoten Name', - title: { - add: 'Anschlussknoten hinzufügen', - edit: 'Anschlussknoten bearbeiten', - }, - }, - }, - templates: { - name: 'Data Type Templates', - missing: 'DataTypeTemplates fehlen', - add: 'DataTypeTemplates hinzufügen', - }, - subscription: { - none: 'Keine Verbindung vorhanden', - connect: 'Daten-Attribut verbunden', - disconnect: 'Daten-Attribute Verbindung gelöst', - subscriber: { - subscribed: 'Verbunden', - notSubscribed: 'Nicht Verbunden', - availableToSubscribe: 'Kann verbunden werden', - partiallySubscribed: 'Teilweise verbunden', - noControlBlockSelected: 'Keine Kontrollblock ausgewählt', - noIedSelected: 'Keine IED ausgewählt', - }, - goose: { - publisher: { - title: 'GOOSE-Publizierer', - subscriberTitle: 'Verbunden mit {{ selected }}', - }, - subscriber: { - iedListTitle: 'Verbunden mit GOOSE Meldungen', - publisherTitle: 'GOOSE Nachricht verbunden mit {{ selected }}', - }, - view: { - publisherView: 'Publisher | Subscriber', - subscriberView: 'Subscriber | Publisher', - }, - }, - smv: { - publisher: { - title: 'SampledValue-Publizierer', - subscriberTitle: 'Verbunden mit {{ selected }}', - }, - subscriber: { - iedListTitle: 'Verbunden mit Sampled Values', - publisherTitle: 'Sampled Value verbunden mit {{ selected }}', - }, - view: { - publisherView: 'Publisher | Subscriber', - subscriberView: 'Subscriber | Publisher', - }, - }, - binding: { - extRefList: { - title: 'Logische Knoten für ausgewählten Daten-Attribute', - noSelection: 'Kein Daten-Attribute ausgewählt', - noSubscribedLNs: 'Kein Verbinding zu dem ausgewählten Daten-Attribute', - noAvailableLNs: - 'Keine Verbindung zu dem ausgewählten Daten-Attribute möglich', - }, - }, - laterBinding: { - extRefList: { - title: 'Für Ausgewählte Daten-Attribut Verfügbare Verbindung', - noSelection: 'Kein Daten-Attribut ausgewählt', - noSubscribedExtRefs: 'Keine bestehenden Verbindungen', - noAvailableExtRefs: 'Keine verfügbaren Eingänge vorhanden', - }, - }, - SampledValueControl: { - controlBlockList: { - title: 'Sample Value Meldungen', - noControlBlockFound: 'Keine Sampled Values gefunden', - }, - }, - GSEControl: { - controlBlockList: { - title: 'GOOSE-Meldungen', - noControlBlockFound: 'Keine GOOSEs gefunden', - }, - }, - }, - protocol104: { - toggleChildElements: 'Kindelemente umschalten', - view: { - valuesView: 'Werte', - networkView: 'Netzwerk', - }, - mappedCmv: - 'Gemäß dem IEC 61850-80-1 Standard ist eine "{{ cdc }}" zuordnung über CMV erforderlich', - values: { - missing: 'Kein IED mit 104 Adressen', - removeAddresses: 'Alle Adressen entfernen', - removedAddresses: - '{{ nrOfAddresses }} Addressen von DOI "{{ name }}" entfernt', - addedAddress: - '104-Addressen zu DO "{{ name }}" in LN(0) "{{ lnName }}" hinzugefügt', - signalNames: { - tiNumber1: 'Einzelwertinformation', - tiNumber3: 'Zweipunktinformation', - tiNumber5: 'Stufenpositionsinformation', - tiNumber7: 'Bit string von 32 Bit', - tiNumber9: 'Gemessener Wert, normalisierter Wert', - tiNumber11: 'Gemessener Wert, skalierte Wert', - tiNumber13: 'Gemessener Wert, Kurz-Gleitkommazahl', - tiNumber15: 'Integrierte Summen', - tiNumber20: - 'Verpackte Einzelwertinformation mit Statusänderungserkennung', - tiNumber21: - 'Gemessener Wert, normalisierter Wert ohne Qualitätsbeschreibung', - tiNumber30: 'Einzelwertinformation mit Zeitstempel CP56Time2a', - tiNumber31: 'Zweipunktinformation mit Zeitstempel CP56Time2a', - tiNumber32: 'Stufenpositionsinformation mit Zeitstempel CP56Time2a', - tiNumber33: 'Bit string von 32 Bit mit Zeitstempel CP56Time2a', - tiNumber34: - 'Gemessener Wert, normalisierter Wert mit Zeitstempel CP56Time2a', - tiNumber35: - 'Gemessener Wert, skalierte Wert mit Zeitstempel CP56Time2a', - tiNumber36: - 'Gemessener Wert, Kurz-Gleitkommazahl mit Zeitstempel CP56Time2a', - tiNumber37: 'Integrierte Summen mit Zeitstempel CP56Time2a', - tiNumber38: 'Ereignis von Schutzeinrichtung mit Zeitstempel CP56Time2a', - tiNumber39: - 'Verpackte Startereignisse von Schutzeinrichtung mit Zeitstempel CP56Time2a', - tiNumber40: - 'Verpackte Ausgangsschaltkreisinformationen von Schutzeinrichtung mit Zeitstempel CP56Time2a', - tiNumber45: 'Einzelbefehl', - tiNumber46: 'Doppelbefehl', - tiNumber47: 'Regelungsschritt-Befehl', - tiNumber48: 'Sollwertbefehl, normalisierter Wert', - tiNumber49: 'Sollwertbefehl, skalierte Wert', - tiNumber50: 'Sollwertbefehl, Kurz-Gleitkommazahl', - tiNumber51: 'Bit string von 32 Bit Befehl', - tiNumber58: 'Einzelbefehl mit Zeitstempel CP56Time2a', - tiNumber59: 'Doppelbefehl mit Zeitstempel CP56Time2a', - tiNumber60: 'Regelungsschritt-Befehl mit Zeitstempel CP56Time2a', - tiNumber61: - 'Gemessener Wert, normalisierter Wert Befehl mit Zeitstempel CP56Time2a', - tiNumber62: - 'Gemessener Wert, skalierte Wert Befehl mit Zeitstempel CP56Time2a', - tiNumber63: - 'Gemessener Wert, Kurz-Gleitkommazahl Befehl mit Zeitstempel CP56Time2a', - tiNumber64: 'Bit string von 32 Bit Befehl mit Zeitstempel CP56Time2a', - default: 'Keine Beschreibung verfügbar', - }, - }, - network: { - connectedAp: { - wizard: { - title: { - edit: 'ConnectedAP bearbeiten', - }, - redundancySwitchLabel: 'Redundanz', - redundancyGroupTitle: 'Redundanzgruppen', - noRedundancyGroupsAvailable: 'Keine Redundanzgruppen verfügbar', - addRedundancyGroup: 'Redundanzruppe hinzufügen', - stationTypeHelper: 'Anlagentyp', - ipHelper: 'IP Adresse', - ipSubnetHelper: 'Subnetzmaske', - wFactorHelper: '???', - kFactorHelper: '???', - timeout0Helper: 'Time-out Verbindungsaufbau in Sekunden', - timeout1Helper: '???', - timeout2Helper: '???', - timeout3Helper: '???', - }, - }, - redundancyGroup: { - wizard: { - title: { - edit: 'Redundanzgruppe bearbeiten', - add: 'Redundanzgruppe hinzufügen', - }, - redundancyGroupNumberLabel: 'Redundanzgruppennummer', - addedLRedundancyGroup: - '??? {{ rGNumber }} ? SubNetwork[name="{{ subNetworkName }}"] > ConnectedAP[apName="{{ apName }}"][iedName="{{ iedName }}"]', - editedRedundancyGroup: - '??? {{ rGNumber }} ? SubNetwork[name="{{ subNetworkName }}"] > ConnectedAP[apName="{{ apName }}"][iedName="{{ iedName }}"]', - removedRedundancyGroup: - '??? {{ rGNumber }} ? SubNetwork[name="{{ subNetworkName }}"] > ConnectedAP[apName="{{ apName }}"][iedName="{{ iedName }}"]', - logicLinkGroupTitle: '???', - noLogicLinksAvailable: '???', - addLogicLink: '???', - }, - }, - logicLink: { - wizard: { - title: { - edit: '???', - add: '???', - }, - logicLinkNumberLabel: '???', - addedLogicLink: - '??? SubNetwork[name="{{ subNetworkName }}"] > ConnectedAP[apName="{{ apName }}"][iedName="{{ iedName }}"]', - editedLogicLink: - '??? SubNetwork[name="{{ subNetworkName }}"] > ConnectedAP[apName="{{ apName }}"][iedName="{{ iedName }}"]', - removedLogicLink: - '??? SubNetwork[name="{{ subNetworkName }}"] > ConnectedAP[apName="{{ apName }}"][iedName="{{ iedName }}"]', - }, - }, - }, - wizard: { - title: { - doiInfo: 'DOI Information', - addressEdit: '104-Adresse bearbeiten', - addAddress: '104-Adresse hinzufügen', - }, - error: { - ioaConflict: 'IOA-Konflikt innerhalb der CASDU-Nummer gefunden', - addAddressError: - 'Invalide Template Struktur, DAI kann nicht hinzugefügt werden (DO: "{{ doType }}", CDC: "{{ cdc }}", Structure: "{{ structure }}")', - }, - casduHelper: 'CASDU Wert', - ioaHelper: 'IOA Wert', - monitorTiHelper: 'TI Wert überwachen', - monitorInverted: '???', - monitorCheck: '???', - controlTiHelper: '???', - controlInverted: '???', - controlCheck: '???', - expectedValueHelper: '???', - unitMultiplierHelper: '???', - scaleMultiplierHelper: '???', - scaleOffsetHelper: '???', - }, - export: { - noSignalsFound: 'Export 104 hat keine Signale gefunden', - invalidSignalWarning: 'Export 104 hat ein ungültiges Signal gefunden', - errors: { - tiOrIoaInvalid: 'ti or ioa fehlen oder ioa hat weniger als 4 Zeichen, ti: "{{ ti }}", ioa: "{{ ioa }}"', - unknownSignalType: 'Unbekannter Signaltyp für ti: "{{ ti }}", ioa: "{{ ioa }}"', - noDoi: 'Es wurde kein Eltern DOI Element gefunden für ioa: "{{ ioa }}"', - noBay: 'Es wurde kein Bay Element mit dem Namen "{{ bayName }}" für ioa: "{{ ioa }}" gefunden', - noVoltageLevel: 'Es wurde kein VoltageLevel Element für Bay "{{ bayName }}" gefunden für ioa "{{ ioa }}"', - noSubstation: 'Es wurde kein Substation Element gefunden für VoltageLevel "{{ voltageLevelName }}" für ioa "{{ ioa }}"' - } - } - }, - 'compare-ied': { - selectProjectTitle: 'Lade IEDs aus Vorlage', - selectIedTitle: 'IEDs zum Vergleich auswählen', - resultTitle: 'Vergleiche IED mit Vorlage', - projectIedTitle: 'IEDs im Projekt', - templateIedTitle: 'IEDs aus Vorlage', - selectIedButton: 'IED auswählen', - selectTemplateButton: 'Vorlage auswählen', - noDiff: - 'Keine Unterschiede zwischen IED Projekt "{{ projectIedName }}" und IED aus Vorlage "{{ templateIedName }}" gefunden', - }, - 'enum-val': { - wizard: { - title: { - add: 'EnumVal hinzufügen', - edit: 'EnumVal bearbeiten', - }, - }, - }, - enum: { - wizard: { - title: { - add: 'EnumType hinzufügen', - edit: 'EnumType bearbeiten', - }, - }, - action: { - edit: 'DAType ID "{{oldId}}" und deren DA-Referenzen geändert zu {{newId}} ', - }, - }, - datype: { - wizard: { - title: { - add: 'DAType hinzufügen', - edit: 'DAType bearbeiten', - }, - }, - action: { - edit: 'EnumType ID "{{oldId}}" und deren DA-Referenzen geändert zu {{newId}} ', - }, - }, - bda: { - wizard: { - title: { - add: 'BDA hinzufügen', - edit: 'BDA bearbeiten', - }, - }, - }, - da: { - wizard: { - title: { - add: 'Add DA', - edit: 'Edit DA', - }, - }, - }, - dai: { - wizard: { - valueHelper: 'Der Wert sollte vom Typ sein {{type}}', - title: { - create: 'DAI "{{daiName}}" hinzufügen', - edit: 'DAI "{{daiName}}" bearbeiten', - }, - }, - action: { - createdai: 'DAI "{{daiName}}" hinzugefügt', - updatedai: 'DAI "{{daiName}}" bearbeitet', - }, - }, - sdo: { - wizard: { - title: { - add: 'SDO hinzufügen', - edit: 'SDO bearbeiten', - }, - }, - }, - do: { - wizard: { - title: { - add: 'DO hinzufügen', - edit: 'DO bearbeiten', - }, - }, - }, - dotype: { - wizard: { - title: { - add: 'DOType hinzufügen', - edit: 'DOType bearbeiten', - }, - enums: 'Standard Enumerations', - }, - action: { - edit: 'DOType ID "{{oldId}}" und deren DO-Referenzen geändert zu {{newId}} ', - }, - }, - lnodetype: { - wizard: { - title: { - add: 'LNodeType hinzufügen', - edit: 'LNodeType bearbeiten', - select: 'Data Objects auswählen', - }, - }, - action: { - edit: 'LNodeType ID "{{oldId}}" und deren LN-Referenzen geändert zu {{newId}} ', - }, - autoimport: 'Vordefinierte OpenSCD LN Klasse verwenden', - missinglnclass: 'Vordefinierte LN Klasse fehlt', - }, - lnode: { - wizard: { - title: { - selectIEDs: 'Auswahl IEDs', - selectLDs: 'Auswahl logische Geräte', - selectLNs: 'Auswahl logische Knoten', - selectLNodeTypes: 'Auswahl logische Knoten Type', - }, - placeholder: 'Bitte laden Sie eine SCL-Datei, die IED-Elemente enthält.', - uniquewarning: 'Logische Knoten Klasse existiert bereits', - reference: 'Referenz auf bestehenden logischen Knoten erstellen', - instance: 'Referenz auf logischen Knoten Typ erstellen', - }, - log: { - title: 'LNode vom Type {{lnClass}} kann nicht hinzugefügt werden', - nonuniquelninst: 'Keine eindeutige Instanz (lnInst)', - uniqueln0: 'Nur eine Instanz von {{lnClass}} zulässig', - }, - tooltip: 'Referenz zu logischen Knoten erstellen', - }, - guess: { - wizard: { - primary: 'Inhalt erraten', - title: 'Auswahl Steuerungsmodel(ctlModel)', - description: `Schaltgeräten im Feld können oftmals bestimmten Steuerungsmodellen zugeordnet werden. \n Damit wird die Abschätzung oftmals genauer.`, - }, - }, - merge: { - title: 'Vereinigen', - defaultTitle: '{{ tag }} {{ source }} mit {{ sink }} vereinigen', - log: '{{ tag }} {{ source }} mit {{ sink }} vereinigt', - children: 'Kindelemente', - }, - import: { - title: 'IEDs importieren', - log: { - successful: 'IED {{name}} geladen', - parsererror: 'Parser Fehler', - loaderror: 'Datei kann nicht geladen werden', - importerror: 'IED Element kann nicht importiert werden', - missingied: 'Kein IED Element in der Datei', - nouniqueied: 'IED Element {{ name }} bereits geladen', - }, - }, - communication: { - name: 'Netzwerkkonfiguration', - missing: 'Kein Subnetzwerk', - }, - subnetwork: { - name: 'Subnetzwerk', - wizard: { - nameHelper: 'Name des Subnetzwerkes', - descHelper: 'Beschreibung des Subnetzwerkes', - typeHelper: 'Netzwerktyp (Bsp. 8-MMS)', - bitrateHelper: 'Übertragungsrate', - title: { - add: 'Subnetzwerk hinzufügen', - edit: 'Subnetzwerk bearbeiten', - }, - }, - }, - connectedap: { - name: 'Schnittstelle', - wizard: { - addschemainsttype: 'XMLSchema-instance type hinzufügen', - }, - action: { - addaddress: 'Adressfeld bearbeitet ({{iedName}} - {{apName}})', - }, - }, - gse: { - action: { - addaddress: 'GSE bearbeitet ({{identity}})', - }, - missingaccp: - 'AccessPoint is nicht verbunden. GSE kann nicht hinzugefügt werden.', - }, - smv: { - action: { - addaddress: 'SMV bearbeitet ({{identity}})', - }, - missingaccp: - 'AccessPoint is nicht verbunden. SMV kann nicht hinzugefügt werden.', - }, - subscriber: { - title: 'Subscriber Update', - description: 'GOOSE Ziele aktualisieren: ', - nonewitems: 'keine neuen IEDName Elemente notwendig', - message: '{{updatenumber}} IEDName Element(e) hinzugefügt', - }, - commmap: { - title: 'Kommunikationszuordnung', - connectCB: '{{cbType}} verbinden', - connectToIED: 'Verbinden mit {{iedName}}', - sourceIED: 'Quellgerät', - sinkIED: 'Zielgerät', - }, - updatesubstation: { - title: 'Schaltanlage aktualisieren', - }, - code: { - log: 'Element im XML Editor angepasst: {{id}}', - }, - updatedesc: { - abb: 'Signalbeschreibungen zu ABB IEDs hinzugefügt', - sel: 'Signalbeschreibungen zu SEL IEDs hinzugefügt', - }, - sld: { - substationSelector: 'Schaltanlage auswählen', - wizard: { - xCoordinateHelper: 'X-Koordinate im Einphasenersatzschaltbild', - yCoordinateHelper: 'Y-Koordinate im Einphasenersatzschaltbild', - }, - }, - dataset: { - fcda: { add: 'Daten-Attribute hinzufügen' }, - fcd: { add: 'Daten-Objekte hinzufügen' }, - }, - report: { - wizard: { location: 'Ablageort der Reports wählen' }, - rptID: 'Report-Kontrolblock Kennung', - }, - cleanup: { - unreferencedDataSets: { - title: 'Nicht referenzierte Datensätze', - deleteButton: 'Ausgewählten Datensatz entfernen', - tooltip: - 'DatenSätze ohne Verweis auf einen zugehörigen GOOSE-, Log-, Report- oder Sampled Value Control Block', - }, - unreferencedControls: { - title: 'Steuerblöcke mit einem fehlenden oder ungültigen Kontrollblock', - deleteButton: 'Ausgewählte Kontrollblöcke entfernen', - tooltip: - 'Steuerblöcke ohne Verweis auf ein vorhandenes Datensatz. Das ist kein Fehler und eher üblich for allem für Reports', - addressDefinitionTooltip: - 'Für diesen Kontrollblock existiert eine Adressdefinition im Abschnitt Kommunikation', - alsoRemoveFromCommunication: 'Kommunikation SMV/GSE mit entfernen', - }, - unreferencedDataTypes: { - title: 'Nicht referenzierte Datentypen', - deleteButton: 'Ausgewählte Datentypen entfernen', - tooltip: - 'Datentypen, die nicht in einem logischen Knoten oder einem anderen verwendeten Datentyp referenziert werden', - alsoRemoveSubTypes: 'Entfernen Sie auch Untertypen', - stackExceeded: - 'Maximale Aufrufe überschritten. Maximal zulässig sind {{maxStackDepth}}. Nicht alle überflüßigen Datentypen sind entfernt und das Project is potentiel beschädigt.', - }, - }, - controlblock: { - action: { - edit: '{{type}} "{{name}}" in IED {{iedName}} bearbeitet', - add: '{{type}} "{{name}}" zu IED {{iedName}} hinzugefügt', - remove: - '{{type}} "{{name}}" and referenzierte Element von IED {{iedName}} entfernt', - }, - hints: { - source: 'Quell-IED', - missingServer: 'Kein Server vorhanden', - exist: '{{type}} mit dem Namen {{name}} existiert', - noMatchingData: 'Keine Datenübereinstimmung', - valid: 'Kann kopiert werden', - }, - label: { - copy: 'Kopie in anderen IEDs ertellen', - }, - }, - gsecontrol: { - wizard: { location: 'Ablageort der GOOSE wählen' }, - }, - samvpledvaluecontrol: { - wizard: { - location: 'Ablageort des Select Sampled Value Control Block wählen', - }, - }, - publisher: { - selectbutton: '{{type}} auswählen', - nodataset: 'Kein verbundener Datensatz', - smv: { - commsetting: 'Kommunikationsparameter (SMV)', - noconnectedap: 'Fehlende Verbindung zu einem Netzwerk', - smvopts: 'Optionale Felder', - }, - }, - exportCommunication: { - noCommunicationSection: 'Die Communication-Sektion ist leer.', - }, userinfo: { loggedInAs: '???', }, - add: 'Hinzufügen', - new: 'Neu', - remove: 'Entfernen', - edit: 'Bearbeiten', - move: 'Verschieben', - create: 'Erstellen', - save: 'Speichern', - saveAs: 'Speichern unter', - open: 'Öffnen', - reset: 'Zurücksetzen', - cancel: 'Abbrechen', - close: 'Schließen', - filter: 'Filter', - filters: 'Filters', - undo: 'Rückgängig', - redo: 'Wiederholen', - duplicate: 'Klonen', - connect: 'Verbinden', - disconnect: 'Trennen', - next: 'Weiter', - compas: { loading: '???', comment: '???', @@ -1089,6 +137,23 @@ export const de: Translations = { bayAmount: '???', substationGen: '???', }, + export104: { + noSignalsFound: 'Export 104 hat keine Signale gefunden', + invalidSignalWarning: 'Export 104 hat ein ungültiges Signal gefunden', + errors: { + tiOrIoaInvalid: + 'ti or ioa fehlen oder ioa hat weniger als 4 Zeichen, ti: "{{ ti }}", ioa: "{{ ioa }}"', + unknownSignalType: + 'Unbekannter Signaltyp für ti: "{{ ti }}", ioa: "{{ ioa }}"', + noDoi: 'Es wurde kein Eltern DOI Element gefunden für ioa: "{{ ioa }}"', + noBay: + 'Es wurde kein Bay Element mit dem Namen "{{ bayName }}" für ioa: "{{ ioa }}" gefunden', + noVoltageLevel: + 'Es wurde kein VoltageLevel Element für Bay "{{ bayName }}" gefunden für ioa "{{ ioa }}"', + noSubstation: + 'Es wurde kein Substation Element gefunden für VoltageLevel "{{ voltageLevelName }}" für ioa "{{ ioa }}"', + }, + }, }, locamation: { vmu: { diff --git a/packages/compas-open-scd/src/translations/en.ts b/packages/compas-open-scd/src/translations/en.ts index 24f2551bfb..ad7877bb42 100644 --- a/packages/compas-open-scd/src/translations/en.ts +++ b/packages/compas-open-scd/src/translations/en.ts @@ -1,952 +1,7 @@ export const en = { - scl: { - id: 'ID', - name: 'Name', - desc: 'Description', - ord: 'Ordinal', - value: 'Value', - EnumVal: 'Enum Value', - EnumType: 'Enum Type', - DA: 'Data attribute', - DO: 'Data object', - DAType: 'Data Attribute Type', - DOType: 'Data Object Type', - CDC: 'Common data class', - Report: 'Report', - LN: 'Logical Node', - bType: 'Basic type', - type: 'Type', - sAddr: 'Short address', - valKind: 'Value kind', - valImport: 'Import value', - fc: 'Function constraint', - LNodeType: 'Logical Node Type', - lnClass: 'Logical Node Class', - accessControl: 'Access control', - transient: 'Transient data', - Val: 'Default value', - dchg: 'Trigger on data change', - qchg: 'Trigger on quality change', - dupd: 'Trigger on data update', - period: 'Periodical Publishing', - gi: 'General Interrogation', - fixedOffs: 'Fixed offset', - securityEnable: 'Security enabled', - DataSet: 'Dataset', - Communication: 'Communication', - TrgOps: 'Trigger options', - OptFields: 'Optional fields', - multicast: 'SMV acc. to IEC 61850 9-2', - smpMod: 'Sample mode', - smpRate: 'Sample rate', - nofASDU: 'Samples per packet', - seqNum: 'Add Sequence Number', - timeStamp: 'Add Timestamp', - dataSet: 'Add DataSet Reference', - reasonCode: 'Add Trigger Reason', - dataRef: 'Add description of the payload', - entryID: 'Add Entry ID', - configRef: 'Add Configuration Revision', - bufOvfl: 'Add Buffered Overflow information', - indexed: 'Multiple instances possible', - buffered: 'Buffered Report', - maxReport: 'Number of Instances', - bufTime: 'Min. time between two Reports', - intgPd: 'Time between two periodic Reports', - SmvOpts: 'Optional Information', - refreshTime: 'Add timestamp to SMV packet', - sampleRate: 'Add sample rate to SMV packet', - security: 'Potential future use. e.g. digital signature', - synchSourceId: 'Add sync source id to SMV packet', - SampledValueControl: 'Sampled Value Control Block', - iedName: 'Referenced IED', - ldInst: 'Referenced Logical Device', - prefix: 'Prefix of the Logical Node', - lnInst: 'Instance of the Logical Node', - virtual: 'Virtual', - phase: 'Phase', - }, - settings: { - title: 'Settings', - language: 'Language', - languages: { de: 'German (Deutsch)', en: 'English' }, - dark: 'Dark theme', - mode: 'Pro mode', - showieds: 'Show IEDs in substation editor', - selectFileButton: 'Select file', - loadNsdTranslations: 'Uploaded NSDoc files', - invalidFileNoIdFound: - "Invalid NSDoc ({{ filename }}); no 'id' attribute found in file", - invalidNsdocVersion: - 'The version of {{ id }} NSD ({{ nsdVersion }}) does not correlate with the version of the corresponding NSDoc ({{ filename }}, {{ nsdocVersion }})', - }, - menu: { - new: 'New project', - title: 'Menu', - viewLog: 'View log', - viewDiag: 'View diagnostics', - }, - wizard: { - title: { - select: 'Select {{tagName}}', - edit: 'Edit {{tagName}}', - add: 'Add {{tagName}}', - }, - }, - openSCD: { - loading: 'Loading project {{ name }}', - loaded: '{{ name }} loaded', - readError: 'Error reading {{ name }}', - readAbort: 'Aborted reading {{ name }}', - }, - zeroline: { - iedsloading: 'Loading IEDs...', - showieds: 'Show/hide IEDs in substation editor', - showfunctions: 'Filter function type elements', - commmap: 'Communication mapping', - reportcontrol: 'Show all Reports', - gsecontrol: 'Show all GOOSEs', - smvcontrol: 'Show all Sampled Values', - }, - editing: { - node: 'User defined object', - created: 'Added {{ name }}', - deleted: 'Removed {{ name }}', - moved: 'Moved {{ name }}', - updated: 'Edited {{ name }}', - import: 'Imported {{name}}', - error: { - create: 'Could not add {{ name }}', - update: 'Could not edit {{ name }}', - move: 'Could not move {{ name }}', - duplicate: 'Could not copy {{ name }}', - nameClash: - 'Parent {{ parent }} already contains a {{ child }} named "{{ name }}"', - idClash: 'The project has already an ID "{{ id }}"', - }, - }, - textfield: { - required: 'Required', - nonempty: 'Must not be empty', - noMultiplier: 'none', - unique: 'Must be unique', - }, - compare: { - compareButton: 'Compare', - attributes: 'Attributes from {{ elementName }}', - children: 'Child elements from {{ elementName }}', - filterMutables: 'Filter project specific differences', - }, - log: { - name: 'Log', - placeholder: 'Errors, warnings and other notifications will show up here.', - snackbar: { - show: 'Show', - placeholder: 'No errors', - }, - }, - history: { - name: 'SCL History', - placeholder: 'Edits will show up here', - noEntries: 'No SCL history entries', - }, - diag: { - name: 'Diagnostics', - zeroissues: 'No errors found in the project', - placeholder: 'Issues found during validation will show up here', - missingnsd: - 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3', - }, - plugins: { - heading: 'Plug-ins', - editor: 'Editor tab', - menu: 'Menu entry', - requireDoc: 'Requires loaded document', - top: 'top', - middle: 'middle', - bottom: 'bottom', - validator: 'Validator', - add: { - heading: 'Add custom plug-in', - warning: `Here you may add remote plug-ins directly from a custom URL. - You do this at your own risk.`, - name: 'Name', - nameHelper: 'Your preferred plug-in name', - src: 'URL', - srcHelper: 'The vendor supplied plug-in URL', - }, - }, - validator: { - schema: { - title: 'Validate project', - valid: '{{ name }} XML schema validation successful', - invalid: '{{ name }} XML schema validation failed', - fatal: 'Fatal validation error', - loadError: 'Could not load XML schema {{ name }}', - }, - templates: { - title: 'Validate templates', - mandatoryChild: - '{{ tag }} {{ id }} is missing mandatory child {{ childTag }} {{ childId }}', - missingAttribute: - 'The attribute {{attr}} is required but missing in {{element}}', - incorrectAttribute: - 'The attribute {{attr}} is incorrect in the element {{element}}.', - missingReference: - '{{tag}}:{{name}} has a invalid reference - type attribute cannot be connected to a template', - }, - }, - substation: { - name: 'Substation', - missing: 'No substation', - wizard: { - nameHelper: 'Substation name', - descHelper: 'Substation description', - title: { - add: 'Add substation', - edit: 'Edit substation', - }, - }, - action: { - addvoltagelevel: 'Add voltage level', - updatesubstation: 'Edited substation "{{name}}"', - }, - clone: { - redirect: "Redirect LNode's", - cloneclose: 'Clone once', - cloneproc: 'Clone multiple', - newname: 'Clone Name', - }, - }, - iededitor: { - iedSelector: 'Select IED', - lnFilter: 'Logical Node Filter', - missing: 'No IED', - toggleChildElements: 'Toggle child elements', - settings: 'Show Services the IED/AccessPoint provides', - wizard: { - daTitle: 'Show DA Info', - doTitle: 'Show DO Info', - nsdocDescription: 'NSDoc description', - doiDescription: 'Data object description', - daiDescription: 'Data attribute description', - ied: 'IED', - accessPoint: 'Access point', - lDevice: 'Logical device', - lnPrefix: 'Logical node prefix', - lnDescription: 'Logical node description', - lnInst: 'Logical node inst', - doName: 'Data object name', - doCdc: 'Data object common data class', - daName: 'Data attribute name', - daFc: 'Data attribute functional constraint', - daBType: 'Data attribute type', - daValue: 'Data attribute value', - }, - }, - ied: { - wizard: { - nameHelper: 'IED name', - descHelper: 'IED description', - title: { - edit: 'Edit IED', - delete: 'Remove IED with references', - references: 'References to be removed', - }, - }, - action: { - updateied: 'Edited IED "{{name}}"', - deleteied: 'Removed IED "{{name}}"', - }, - }, - ldevice: { - wizard: { - nameHelper: 'Logical device name', - noNameSupportHelper: "IED doesn't support Functional Naming", - descHelper: 'Logical device description', - title: { - edit: 'Edit logical device', - }, - }, - }, - ln: { - wizard: { - title: { - edit: 'Edit LN', - }, - descHelper: 'Logical node description', - lnTypeHelper: 'Logical node type', - prefixHelper: 'Prefix of the logical node', - lnClassHelper: 'Logical node class', - instHelper: 'Instance', - } - }, - ln0: { - wizard: { - title: { - edit: 'Edit LN0', - }, - descHelper: 'Logical node description', - lnTypeHelper: 'Logical node type', - lnClassHelper: 'Logical node class', - instHelper: 'Instance', - } - }, - powertransformer: { - wizard: { - nameHelper: 'Power transformer name', - descHelper: 'Power transformer description', - typeHelper: 'Power transformer type', - title: { - add: 'Add power transformer', - edit: 'Edit power transformer', - }, - }, - }, - voltagelevel: { - name: 'Voltage level', - wizard: { - nameHelper: 'Voltage level name', - descHelper: 'Voltage level description', - nomFreqHelper: 'Nominal frequency', - numPhaseHelper: 'Number of phases', - voltageHelper: 'Nominal voltage', - title: { - add: 'Add voltage level', - edit: 'Edit voltage level', - }, - }, - action: { - updateVoltagelevel: 'Edited voltagelevel "{{name}}"', - }, - }, - line: { - name: 'Line', - wizard: { - nameHelper: 'Line name', - descHelper: 'Line description', - typeHelper: 'Line type', - title: { - add: 'Add line', - edit: 'Edit line', - }, - }, - action: { - updateLine: 'Edited line "{{name}}"', - }, - }, - process: { - name: 'Process', - wizard: { - nameHelper: 'Process name', - descHelper: 'Process description', - typeHelper: 'Process type', - title: { - add: 'Add Process', - edit: 'Edit Process', - }, - }, - action: { - updateProcess: 'Edited Process "{{name}}"', - }, - }, - bay: { - name: 'Bay', - wizard: { - nameHelper: 'Bay name', - descHelper: 'Bay description', - title: { - add: 'Add bay', - edit: 'Edit bay', - }, - }, - action: { - updateBay: 'Edited bay "{{name}}"', - }, - }, - conductingequipment: { - name: 'Conducting Equipment', - wizard: { - nameHelper: 'Conducting equipment name', - descHelper: 'Conducting equipment description', - typeHelper: 'Conducting equipment type', - title: { - add: 'Add conducting equipment', - edit: 'Edit conducting equipment', - }, - }, - unknownType: 'Unknown type', - }, - connectivitynode: { - name: 'Connectivity Node', - wizard: { - nameHelper: 'Connectivity node name', - pathNameHelper: 'Connectivity node pathname', - title: { - add: 'Add Connectivity node', - edit: 'Edit Connectivity node', - }, - }, - }, - terminal: { - name: 'Terminal', - wizard: { - nameHelper: 'Terminal name', - connectivityNodeHelper: 'Terminal connectivity node', - cNodeNameHelper: 'Terminal connectivity node name', - title: { - add: 'Add Terminal', - edit: 'Edit Terminal', - }, - }, - }, - templates: { - name: 'Data Type Templates', - missing: 'DataTypeTemplates missing', - add: 'Add DataTypeTemplates', - }, - subscription: { - none: 'None', - connect: 'Connect data attribute', - disconnect: 'Disconnect data attribute', - subscriber: { - subscribed: 'Subscribed', - notSubscribed: 'Not Subscribed', - availableToSubscribe: 'Available to subscribe', - partiallySubscribed: 'Partially subscribed', - noControlBlockSelected: 'No control block selected', - noIedSelected: 'No IED selected', - }, - goose: { - publisher: { - title: 'GOOSE Publishers', - subscriberTitle: 'IEDs subscribed to {{ selected }}', - }, - subscriber: { - iedListTitle: 'GOOSE Subscribers', - publisherTitle: 'GOOSE Messages subscribed to {{selected}}', - }, - view: { - publisherView: 'Publisher | Subscriber', - subscriberView: 'Subscriber | Publisher', - }, - }, - smv: { - publisher: { - title: 'Sampled Value Messages', - subscriberTitle: 'IEDs subscribed to {{ selected }}', - }, - subscriber: { - iedListTitle: 'Sampled Value Subscribers', - publisherTitle: 'Sampled Value Messages subscribed to {{ selected }}', - }, - view: { - publisherView: 'Publisher | Subscriber', - subscriberView: 'Subscriber | Publisher', - }, - }, - binding: { - extRefList: { - title: 'Logical nodes available for selected data attribute', - noSelection: 'No data attribute selected', - noSubscribedLNs: 'No subscribed logical nodes', - noAvailableLNs: 'No available logical nodes to subscribe', - }, - }, - laterBinding: { - extRefList: { - title: 'Inputs available for selected data attribute', - noSelection: 'No data attribute selected', - noSubscribedExtRefs: 'No subscribed inputs', - noAvailableExtRefs: 'No available inputs to subscribe', - }, - }, - SampledValueControl: { - controlBlockList: { - title: 'Sampled Value Messages', - noControlBlockFound: 'No Sampled Value Messages found', - }, - }, - GSEControl: { - controlBlockList: { - title: 'GOOSE Messages', - noControlBlockFound: 'No GOOSE Messages found', - }, - }, - }, - protocol104: { - toggleChildElements: 'Toggle child elements', - view: { - valuesView: 'Values', - networkView: 'Network', - }, - mappedCmv: - 'According to the IEC 61850-80-1 standard, "{{ cdc }}" mapping is required via CMV', - values: { - missing: 'No IED with 104 Addresses', - removeAddresses: 'Remove all Addresses', - removedAddresses: - 'Removed Addresses from DOI "{{ name }}" ({{ nrOfAddresses }})', - addedAddress: - 'Added 104 Address(es) to DO "{{ name }}" on LN(0) "{{ lnName }}"', - signalNames: { - tiNumber1: 'Single-point information', - tiNumber3: 'Double-point information', - tiNumber5: 'Step position information', - tiNumber7: 'Bit string of 32 bit', - tiNumber9: 'Measured value, normalized value', - tiNumber11: 'Measured value, scaled value', - tiNumber13: 'Measured value, short floating point number', - tiNumber15: 'Integrated totals', - tiNumber20: - 'Packed single point information with status change detection', - tiNumber21: - 'Measured value, normalized value without quality descriptor', - tiNumber30: 'Single-point information with time tag CP56Time2a', - tiNumber31: 'Double-point information with time tag CP56Time2a', - tiNumber32: 'Step position information with time tag CP56Time2a', - tiNumber33: 'Bit string of 32 bit with time tag CP56Time2a', - tiNumber34: 'Measured value, normalized value with time tag CP56Time2a', - tiNumber35: 'Measured value, scaled value with time tag CP56Time2a', - tiNumber36: - 'Measured value, short floating point number with time tag CP56Time2a', - tiNumber37: 'Integrated totals with time tag CP56Time2a', - tiNumber38: 'Event of protection equipment with time tag CP56Time2a', - tiNumber39: - 'Packed start events of protection equipment with time tag CP56Time2a', - tiNumber40: - 'Packed output circuit information of protection equipment with time tag CP56Time2a', - tiNumber45: 'Single command', - tiNumber46: 'Double command', - tiNumber47: 'Regulating step command', - tiNumber48: 'Set-point Command, normalized value', - tiNumber49: 'Set-point Command, scaled value', - tiNumber50: 'Set-point Command, short floating point number', - tiNumber51: 'Bit string 32 bit command', - tiNumber58: 'Single command with time tag CP56Time2a', - tiNumber59: 'Double command with time tag CP56Time2a', - tiNumber60: 'Regulating step command with time tag CP56Time2a', - tiNumber61: - 'Measured value, normalized value command with time tag CP56Time2a', - tiNumber62: - 'Measured value, scaled value command with time tag CP56Time2a', - tiNumber63: - 'Measured value, short floating point number command with time tag CP56Time2a', - tiNumber64: 'Bit string of 32 bit command with time tag CP56Time2a', - default: 'No description available', - }, - }, - network: { - connectedAp: { - wizard: { - title: { - edit: 'Edit ConnectedAP', - }, - redundancySwitchLabel: 'Redundancy', - redundancyGroupTitle: 'Redundancy Groups', - noRedundancyGroupsAvailable: 'No redundancy groups available', - addRedundancyGroup: 'Redundancy Group', - stationTypeHelper: 'Type of station', - ipHelper: 'IP address of the logical link', - ipSubnetHelper: - 'Subnetwork mask of the IP address of the logical link', - wFactorHelper: 'W factor of the logical link', - kFactorHelper: 'K factor of the logical link', - timeout0Helper: 'Time-out in seconds of connection establishment', - timeout1Helper: 'Time-out in seconds of sent or test APDUs', - timeout2Helper: - 'Time-out in seconds for acknowledges in case of no data messages', - timeout3Helper: - 'Time-out in seconds for sending test frames in case of a long idle state', - }, - }, - redundancyGroup: { - wizard: { - title: { - edit: 'Edit Redundancy Group', - add: 'Add Redundancy Group', - }, - redundancyGroupNumberLabel: 'Redundancy Group number', - addedLRedundancyGroup: - 'Added Redundancy Group {{ rGNumber }} from SubNetwork (name="{{ subNetworkName }}") and ConnectedAP (AccessPoint Name="{{ apName }}", IED Name="{{ iedName }}")', - editedRedundancyGroup: - 'Edited Redundancy Group {{ rGNumber }} from SubNetwork (name="{{ subNetworkName }}") and ConnectedAP (AccessPoint Name="{{ apName }}", IED Name="{{ iedName }}")', - removedRedundancyGroup: - 'Removed Redundancy Group {{ rGNumber }} from SubNetwork (name="{{ subNetworkName }}") and ConnectedAP (AccessPoint Name="{{ apName }}", IED Name="{{ iedName }}")', - logicLinkGroupTitle: 'Logic Links', - noLogicLinksAvailable: 'No Logic Links available', - addLogicLink: 'Logic Link', - }, - }, - logicLink: { - wizard: { - title: { - edit: 'Edit Logic Link', - add: 'Add Logic Link', - }, - logicLinkNumberLabel: 'Logic Link number', - addedLogicLink: - 'Added Logic Link group to SubNetwork (name="{{ subNetworkName }}") and ConnectedAP (AccessPoint Name="{{ apName }}", IED Name="{{ iedName }}")', - editedLogicLink: - 'Edited Logic Link group from SubNetwork (name="{{ subNetworkName }}") and ConnectedAP (AccessPoint Name="{{ apName }}", IED Name="{{ iedName }}")', - removedLogicLink: - 'Removed Logic Link group from SubNetwork (name="{{ subNetworkName }}") and ConnectedAP (AccessPoint Name="{{ apName }}", IED Name="{{ iedName }}")', - }, - }, - }, - wizard: { - title: { - doiInfo: 'DOI Info', - addressEdit: 'Edit 104 Address', - addAddress: 'Add 104 Address', - }, - error: { - ioaConflict: 'IOA conflict found within CASDU number', - addAddressError: - 'Invalid Template Structure, unable to create DAI Element. (DO: "{{ doType }}", CDC: "{{ cdc }}", DAI: "{{ structure }}")', - }, - casduHelper: 'CASDU Value', - ioaHelper: 'IOA Value', - monitorTiHelper: 'Monitor TI Value', - monitorInverted: 'Created Inverted Addresses (Monitor)', - monitorCheck: 'Create Check Addresses (Monitor)', - controlTiHelper: 'Control TI Value', - controlInverted: 'Created Inverted Addresses (Control)', - controlCheck: 'Create Check Addresses (Control)', - expectedValueHelper: 'Expected Value', - unitMultiplierHelper: 'Unit Multiplier', - scaleMultiplierHelper: 'Scale Multiplier', - scaleOffsetHelper: 'Scale Offset', - }, - export: { - noSignalsFound: 'Export 104 found no signals', - invalidSignalWarning: 'Export 104 found invalid signal', - errors: { - tiOrIoaInvalid: 'ti or ioa are missing or ioa is less than 4 digits, ti: "{{ ti }}", ioa: "{{ ioa }}"', - unknownSignalType: 'Unknown signal type for ti: "{{ ti }}", ioa: "{{ ioa }}"', - noDoi: 'No parent DOI found for address with ioa: "{{ ioa }}"', - noBay: 'No Bay found bayname: "{{ bayName }}" for address with ioa: "{{ ioa }}"', - noVoltageLevel: 'No parent voltage level found for bay "{{ bayName }}" for ioa "{{ ioa }}"', - noSubstation: 'No parent substation found for voltage level "{{ voltageLevelName }}" for ioa "{{ ioa }}"' - } - } - }, - 'compare-ied': { - selectProjectTitle: 'Select template project to Compare IED with', - selectIedTitle: 'Select IED for comparison', - resultTitle: 'Compared IED with IED from template project', - projectIedTitle: 'IEDs in project', - templateIedTitle: 'IEDs in template project', - selectIedButton: 'Select IED', - selectTemplateButton: 'Select template project', - noDiff: - 'No differences between the project IED "{{ projectIedName }}" and template IED "{{ templateIedName }}"', - }, - 'enum-val': { - wizard: { - title: { - add: 'Add EnumVal', - edit: 'Edit EnumVal', - }, - }, - }, - enum: { - wizard: { - title: { - add: 'Add EnumType', - edit: 'Edit EnumType', - }, - }, - action: { - edit: 'Change EnumType ID "{{oldId}}" and its DA references to {{newId}} ', - }, - }, - datype: { - wizard: { - title: { - add: 'Add DAType', - edit: 'Edit DAType', - }, - }, - action: { - edit: 'Change DAType ID "{{oldId}}" and its DA references to {{newId}} ', - }, - }, - bda: { - wizard: { - title: { - add: 'Add BDA', - edit: 'Edit BDA', - }, - }, - }, - da: { - wizard: { - title: { - add: 'Add DA', - edit: 'Edit DA', - }, - }, - }, - dai: { - wizard: { - valueHelper: 'Value should be of type {{type}}', - title: { - create: 'Create DAI "{{daiName}}"', - edit: 'Edit DAI "{{daiName}}"', - }, - }, - action: { - createdai: 'Created DAI "{{daiName}}"', - updatedai: 'Edited DAI "{{daiName}}"', - }, - }, - sdo: { - wizard: { - title: { - add: 'Add SDO', - edit: 'Edit SDO', - }, - }, - }, - do: { - wizard: { - title: { - add: 'Add DO', - edit: 'Edit DO', - }, - }, - }, - dotype: { - wizard: { - title: { - add: 'Add DOType', - edit: 'Edit DOType', - }, - enums: 'Default enumerations', - }, - action: { - edit: 'Change DOType ID "{{oldId}}" and its DO references to {{newId}} ', - }, - }, - lnodetype: { - wizard: { - title: { - add: 'Add LNodeType', - edit: 'Edit LNodeType', - select: 'Select Data Objects', - }, - }, - action: { - edit: 'Change LNodeType ID "{{oldId}}" and its LN references to {{newId}} ', - }, - autoimport: 'Use LN class from OpenSCD template', - missinglnclass: 'Missing pre-defined LN class', - }, - lnode: { - wizard: { - title: { - selectIEDs: 'Select IEDs', - selectLDs: 'Select logical devices', - selectLNs: 'Select logical nodes', - selectLNodeTypes: 'Select logical node types', - }, - placeholder: 'Please load an SCL file that contains IED elements.', - uniquewarning: 'Logical node class already exists', - reference: 'Add reference to existing logical node', - instance: 'Add reference to logical node type', - }, - log: { - title: 'Cannot add LNode of class {{lnClass}}', - nonuniquelninst: 'Cannot find unique lnInst', - uniqueln0: 'Only one instance of {{lnClass}} allowed', - }, - tooltip: 'Create logical nodes reference', - }, - guess: { - wizard: { - primary: 'Guess content', - title: 'Select control model (ctlModel)', - description: `IEDs often contain more controllable logical nodes than switchgear in the field. \n You can select the control model(s) used specific for switchgear.`, - }, - }, - merge: { - title: 'Merge', - defaultTitle: 'Merge {{ source }} into {{ sink }} ({{ tag }})', - log: 'Merged {{ tag }} {{ source }} into {{ sink }}', - children: 'Child elements', - }, - import: { - title: 'Import IEDs', - log: { - successful: 'IED {{ name }} loaded', - parsererror: 'Parser error', - loaderror: 'Could not load file', - importerror: 'Could not import IED', - missingied: 'No IED element in the file', - nouniqueied: 'IED element {{ name }} already in the file', - }, - }, - communication: { - name: 'Network Configuration', - missing: 'No subnetwork', - }, - subnetwork: { - name: 'Subnetwork', - wizard: { - nameHelper: 'Subnetwork name', - descHelper: 'Subnetwork description', - typeHelper: 'Network type (e.g. 8-MMS)', - bitrateHelper: 'Bit rate', - title: { - add: 'Add subnetwork', - edit: 'Edit subnetwork', - }, - }, - }, - connectedap: { - name: 'Connected access point', - wizard: { - addschemainsttype: 'Add XMLSchema-instance type', - }, - action: { - addaddress: 'Edit Address ({{iedName}} - {{apName}})', - }, - }, - gse: { - action: { - addaddress: 'Edit GSE ({{identity}})', - }, - missingaccp: 'AccessPoint is not connected. GSE cannot be created.', - }, - smv: { - action: { - addaddress: 'Edit SMV ({{identity}})', - }, - missingaccp: 'AccessPoint is not connected. SMV cannot be created.', - }, - subscriber: { - title: 'Subscriber update', - description: 'Subscriber update: ', - nonewitems: 'no new IEDName elements to add', - message: '{{updatenumber}} IEDName elements added to the project', - }, - commmap: { - title: 'Communication mapping', - connectCB: 'Connect {{cbType}}', - connectToIED: 'Connect to {{iedName}}', - sourceIED: 'Source IED', - sinkIED: 'Sink IED', - }, - updatesubstation: { - title: 'Update substation', - }, - code: { - log: 'Changed element in XML editor: {{id}}', - }, - updatedesc: { - abb: 'Added signal descriptions to ABB IEDs', - sel: 'Added signal descriptions to SEL IEDs', - }, - sld: { - substationSelector: 'Select a substation', - wizard: { - xCoordinateHelper: 'X-Coordinate for Single Line Diagram', - yCoordinateHelper: 'Y-Coordinate for Single Line Diagram', - }, - }, - dataset: { - fcda: { add: 'Add Data Attributes' }, - fcd: { add: 'Add Data Objects' }, - }, - report: { - wizard: { location: 'Select Report Control Location' }, - rptID: 'Report control block identifier', - }, - cleanup: { - unreferencedDataSets: { - title: 'Unreferenced Datasets', - deleteButton: 'Remove Selected Datasets', - tooltip: - 'Datasets without a reference to an associated GOOSE, Log, Report or Sampled Value Control Block', - }, - unreferencedControls: { - title: 'Control Blocks with a Missing or Invalid Dataset', - deleteButton: 'Remove Selected Control Blocks', - tooltip: - 'Control Blocks without a reference to an existing DataSet. Note that this is normal in an ICD file or for an MMS ReportControl with a dynamically allocated DataSet', - addressDefinitionTooltip: - 'An address definition exists for this control block in the Communication section', - alsoRemoveFromCommunication: 'Also remove SMV/GSE Address', - }, - unreferencedDataTypes: { - title: 'Unreferenced Data Types', - deleteButton: 'Remove Selected Data Types', - tooltip: - 'Data Types which are not referenced in a Logical Node or other used Data Type', - alsoRemoveSubTypes: 'Also remove subtypes', - stackExceeded: - 'Max Stack Length Exceeded. Maximum allowed is {{maxStackDepth}}. Datatype cleaning incomplete and file damage may have occurred.', - }, - }, - controlblock: { - action: { - edit: 'Edited {{type}} "{{name}}" in IED {{iedName}}', - add: 'Added {{type}} "{{name}}" to IED {{iedName}}', - remove: - 'Removed {{type}} "{{name}}" and its referenced elements from IED {{iedName}}', - }, - hints: { - source: 'Source IED', - missingServer: 'Not A Server', - exist: '{{type}} with name {{name}} already exist', - noMatchingData: 'No matching data', - valid: 'Can be copied', - }, - label: { copy: 'Copy to other IEDs' }, - }, - gsecontrol: { - wizard: { location: 'Select GOOSE Control Block Location' }, - }, - samvpledvaluecontrol: { - wizard: { location: 'Select Sampled Value Control Block Location' }, - }, - publisher: { - selectbutton: 'Select other {{type}}', - nodataset: 'No DataSet referenced', - smv: { - commsetting: 'Communication Settings (SMV)', - noconnectedap: 'No connection to SubNetwork', - smvopts: 'Optional Fields', - }, - }, - exportCommunication: { - noCommunicationSection: 'No export as Communication section empty', - }, userinfo: { loggedInAs: 'Logged in as {{name}}', }, - add: 'Add', - new: 'New', - remove: 'Remove', - edit: 'Edit', - move: 'Move', - create: 'Create', - save: 'Save', - saveAs: 'Save as', - open: 'Open', - reset: 'Reset', - cancel: 'Cancel', - close: 'Close', - filter: 'Filter', - filters: 'Filters', - undo: 'Undo', - redo: 'Redo', - duplicate: 'Clone', - connect: 'Connect', - disconnect: 'Disconnect', - next: 'Next', - compas: { loading: 'Loading...', comment: 'Comment', @@ -1091,6 +146,23 @@ export const en = { bayAmount: `Generating {{amount}} Bay Element(s) for {{voltagelevelname}} Voltage Level!`, substationGen: `Generated {{substationname}} substation with content!`, }, + export104: { + noSignalsFound: 'Export 104 found no signals', + invalidSignalWarning: 'Export 104 found invalid signal', + errors: { + tiOrIoaInvalid: + 'ti or ioa are missing or ioa is less than 4 digits, ti: "{{ ti }}", ioa: "{{ ioa }}"', + unknownSignalType: + 'Unknown signal type for ti: "{{ ti }}", ioa: "{{ ioa }}"', + noDoi: 'No parent DOI found for address with ioa: "{{ ioa }}"', + noBay: + 'No Bay found bayname: "{{ bayName }}" for address with ioa: "{{ ioa }}"', + noVoltageLevel: + 'No parent voltage level found for bay "{{ bayName }}" for ioa "{{ ioa }}"', + noSubstation: + 'No parent substation found for voltage level "{{ voltageLevelName }}" for ioa "{{ ioa }}"', + }, + }, }, locamation: { vmu: { diff --git a/packages/compas-open-scd/src/translations/loader.ts b/packages/compas-open-scd/src/translations/loader.ts index 2f61e18065..ae45c8a87d 100644 --- a/packages/compas-open-scd/src/translations/loader.ts +++ b/packages/compas-open-scd/src/translations/loader.ts @@ -1,11 +1,16 @@ import { Strings } from 'lit-translate'; -import { de } from './de.js'; -import { en } from './en.js'; +import { de as compasDe } from './de.js'; +import { en as compasEn } from './en.js'; +import { de as oscdDe } from '@openscd/open-scd/src/translations/de.js'; +import { en as oscdEn } from '@openscd/open-scd/src/translations/en.js'; export type Language = 'en' | 'de'; -export const languages = { en, de }; +export const languages = { + en: { ...oscdEn, ...compasEn }, + de: { ...oscdDe, ...compasDe }, +}; -export type Translations = typeof en; +export type Translations = typeof compasEn; export async function loader(lang: string): Promise { if (Object.keys(languages).includes(lang)) return languages[lang]; diff --git a/packages/plugins/src/menu/Export104.ts b/packages/plugins/src/menu/Export104.ts index d83869b5e4..e028f7e474 100644 --- a/packages/plugins/src/menu/Export104.ts +++ b/packages/plugins/src/menu/Export104.ts @@ -27,7 +27,7 @@ export default class Export104 extends LitElement { if (signals.length === 0) { this.dispatchEvent(newLogEvent({ kind: 'info', - title: get('protocol104.export.noSignalsFound'), + title: get('compas.export104.noSignalsFound'), })); return; } @@ -48,7 +48,7 @@ export default class Export104 extends LitElement { private logWarning(errorMessage: string): void { this.dispatchEvent(newLogEvent({ kind: 'warning', - title: get('protocol104.export.invalidSignalWarning'), + title: get('compas.export104.invalidSignalWarning'), message: errorMessage, })); } diff --git a/packages/plugins/src/menu/export104/foundation.ts b/packages/plugins/src/menu/export104/foundation.ts index 16041f1f4c..99efc91a73 100644 --- a/packages/plugins/src/menu/export104/foundation.ts +++ b/packages/plugins/src/menu/export104/foundation.ts @@ -47,13 +47,13 @@ function extractSignal104Data(addressElement: Element, doc: XMLDocument): Extrac // By convention the last four digits of the ioa are the signalnumber, see https://github.com/com-pas/compas-open-scd/issues/334 if (ti === null || ioa === null || ioa.length < 4) { - return { signal: null, error: get('protocol104.export.errors.tiOrIoaInvalid', { ti: ti ?? '', ioa: ioa ?? '' }) }; + return { signal: null, error: get('compas.export104.errors.tiOrIoaInvalid', { ti: ti ?? '', ioa: ioa ?? '' }) }; } const { signalNumber, bayName } = splitIoa(ioa); const signalType = getSignalType(ti); if (signalType === SignalType.Unknown) { - return { signal: null, error: get('protocol104.export.errors.unknownSignalType', { ti: ti ?? '', ioa: ioa ?? '' }) }; + return { signal: null, error: get('compas.export104.errors.unknownSignalType', { ti: ti ?? '', ioa: ioa ?? '' }) }; } const isMonitorSignal = signalType === SignalType.Monitor; @@ -61,7 +61,7 @@ function extractSignal104Data(addressElement: Element, doc: XMLDocument): Extrac const parentDOI = addressElement.closest('DOI'); if (!parentDOI) { - return { signal: null, error: get('protocol104.export.errors.noDoi', { ioa: ioa ?? '' }) }; + return { signal: null, error: get('compas.export104.errors.noDoi', { ioa: ioa ?? '' }) }; } const doiDesc = parentDOI.getAttribute('desc'); @@ -70,20 +70,20 @@ function extractSignal104Data(addressElement: Element, doc: XMLDocument): Extrac const parentBay = doc.querySelector(parentBayQuery); if (!parentBay) { - return { signal: null, error: get('protocol104.export.errors.noBay', { bayName, ioa: ioa ?? '' }) }; + return { signal: null, error: get('compas.export104.errors.noBay', { bayName, ioa: ioa ?? '' }) }; } const parentVoltageLevel = parentBay.closest('VoltageLevel'); if (!parentVoltageLevel) { - return { signal: null, error: get('protocol104.export.errors.noVoltageLevel', { bayName, ioa: ioa ?? '' }) }; + return { signal: null, error: get('compas.export104.errors.noVoltageLevel', { bayName, ioa: ioa ?? '' }) }; } const voltageLevelName = parentVoltageLevel.getAttribute('name'); const parentSubstation = parentVoltageLevel.closest('Substation'); if (!parentSubstation) { - return { signal: null, error: get('protocol104.export.errors.noSubstation', { voltageLevelName: voltageLevelName ?? '', ioa: ioa ?? '' }) }; + return { signal: null, error: get('compas.export104.errors.noSubstation', { voltageLevelName: voltageLevelName ?? '', ioa: ioa ?? '' }) }; } const substationName = parentSubstation.getAttribute('name'); diff --git a/packages/plugins/test/unit/menu/104Export/foundation.test.ts b/packages/plugins/test/unit/menu/104Export/foundation.test.ts index 44dcb7ecf7..365d751b60 100644 --- a/packages/plugins/test/unit/menu/104Export/foundation.test.ts +++ b/packages/plugins/test/unit/menu/104Export/foundation.test.ts @@ -53,8 +53,8 @@ describe('Export104 foundation', () => { ]; const expectedErrors = [ - '[protocol104.export.errors.unknownSignalType]', - '[protocol104.export.errors.tiOrIoaInvalid]', + '[compas.export104.errors.unknownSignalType]', + '[compas.export104.errors.tiOrIoaInvalid]', ]; expect(errors).to.deep.equal(expectedErrors);