This is an automated email from the ASF dual-hosted git repository. riemer pushed a commit to branch add-translations-connect in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit 0b5e7c5e3c8039591cc62ca8f21fd8e967a0a7af Author: Dominik Riemer <[email protected]> AuthorDate: Tue Oct 21 15:09:59 2025 +0200 feat: Translate several connect components --- ui/deployment/i18n/de.json | 76 ++++++++++++++++---- ui/deployment/i18n/en.json | 81 ++++++++++++++++------ .../datalake-configuration.component.html | 7 +- .../adapter-configuration.component.html | 22 +++--- .../adapter-configuration.component.ts | 6 ++ .../adapter-deployment-settings.component.html | 6 +- .../adapter-settings.component.html | 10 +-- .../error-message/error-message.component.html | 6 +- .../event-property-row.component.html | 18 +++-- .../adapter-details-code.component.html | 2 +- .../adapter-details-data.component.html | 4 +- .../adapter-details-logs.component.html | 2 +- .../adapter-details-metrics.component.html | 6 +- .../adapter-description.component.html | 8 +-- .../data-marketplace.component.html | 4 +- .../existing-adapters.component.html | 6 +- .../filter-toolbar/filter-toolbar.component.html | 2 +- .../login/components/login/login.component.html | 36 ++++++---- .../components/register/register.component.html | 22 +++--- .../restore-password.component.html | 26 ++++--- .../login/components/terms/terms.component.html | 4 +- ui/src/app/login/login.module.ts | 2 + 22 files changed, 240 insertions(+), 116 deletions(-) diff --git a/ui/deployment/i18n/de.json b/ui/deployment/i18n/de.json index da731c1872..ebabde119c 100644 --- a/ui/deployment/i18n/de.json +++ b/ui/deployment/i18n/de.json @@ -52,6 +52,28 @@ "Modify Pipeline": "Pipeline bearbeiten", "Modify pipeline": "Pipeline ändern", "Delete Pipeline": "Pipeline löschen", + "Accept": "Akzeptieren", + "Reject": "Ablehnen", + "Restore password": "Passwort wiederherstellen", + "Email": "E-Mail", + "Reset password": "Passwort zurücksetzen", + "Unknown error - contact your administrator to check the mail settings.": "Unbekannter Fehler - Administrator kontaktieren, um die E-Mail-Einstellungen zu überprüfen.", + "In case this account exists, you'll receive a mail with instructions to restore your password shortly.": "In dem Fall, dass dieses Konto existiert, erhalten Sie in Kürze eine E-Mail mit Anweisungen zur Wiederherstellung Ihres Passworts.", + "Go to login page": "Zur Anmeldeseite gehen", + "Register": "Registrieren", + "Initial password": "Ursprüngliches Passwort", + "Repeat password": "Passwort wiederholen", + "Passwords do not match.": "Die Passwörter stimmen nicht überein.", + "Login": "Anmelden", + "Email ": "E-Mail", + "Password": "Passwort", + "Logging in": "Anmelden...", + "User not found or incorrect password provided.": "Benutzer nicht gefunden oder falsches Passwort angegeben.", + "Please try again": "Bitte erneut versuchen", + "Forgot password?": "Passwort vergessen?", + "Create new account": "Neuen Account erstellen", + "or": "oder", + "Login with": "Anmelden mit", "Preparing pipeline editor...": "Pipeline-Editor vorbereiten...", "The tutorial requires pipeline elements that are not yet installed.": "Für das Lernprogramm werden Pipeline-Elemente benötigt, die noch nicht installiert sind.", "Install the following pipeline elements and start the tutorial again:": "Installieren Sie die folgenden Pipeline-Elemente und starten Sie das Lernprogramm erneut:", @@ -197,6 +219,8 @@ "Clone chart": "Diagramm kopieren", "Delete chart": "Diagramm löschen", "Chart Name": "Diagrammname", + "Add to Asset": "Zu Asset hinzufügen", + "Add To Asset": "Zu Asset hinzufügen", "Discard": "Verwerfen", "Data": "Daten", "Visualization": "Visualisierung", @@ -257,6 +281,8 @@ "Grid columns": "Gitternetz-Spalten", "Time settings": "Zeiteinstellungen", "Use global time settings instead of chart time settings": "Einheitliche Zeiteinstellungen anstelle von Diagramm-Zeiteinstellungen verwenden", + "Add Dashboard to Assets": "Dashboard zu Assets hinzufügen", + "Add the current dashboard to an existing asset": "Das aktuelle Dashboard zu einem bestehenden Asset hinzufügen", "New dashboard title": "Neuer Dashboard-Titel", "Clone options": "Optionen zum Klonen", "Deep clone (also clone widgets)": "Tiefes Klonen (auch Widgets klonen)", @@ -327,12 +353,23 @@ "Allow anonymous access through public link": "Anonymen Zugang über einen öffentlichen Link ermöglichen", "URL": "URL", "(no log messages available)": "(keine Protokollmeldungen verfügbar)", + "Adapters": "Adapter", "New adapter": "Neuer Adapter", "Start all adapters": "Alle Adapter starten", "Stop all adapters": "Alle Adapter anhalten", + "Refresh adapters": "Adapter neu laden", "Messages": "Nachrichten", "Last message": "Letzte Nachricht", - "Add to Asset": "Zu Asset hinzufügen", + "Select Adapter": "Adapter auswählen", + "Create adapter": "Adapter erstellen", + "Docs": "Doku", + "Refresh": "Neu laden", + "Last published message": "Zuletzt veröffentlichte Nachricht", + "Published messages": "Nachrichten", + "Adapter running": "Adapter läuft", + "Adapter stopped": "Adapter gestoppt", + "Configure fields": "Felder konfigurieren", + "Start adapter": "Adapter starten", "Add Adapter to an existing Asset": "Adapter zu einem bestehenden Asset hinzufügen", "Remove Duplicates": "Duplikate entfernen", "Avoid duplicated events within a certain time interval": "Vermeidung von doppelten Datenpunkte innerhalb eines bestimmten Zeitintervalls", @@ -348,6 +385,17 @@ "Show code to programmatically deploy this adapter over the API": "Code anzeigen, um diesen Adapter programmatisch über die API einzusetzen", "Start Adapter": "Start Adapter", "Update Adapter": "Adapter aktualisieren", + "Measurement": "Messwert", + "Dimension": "Dimension", + "Header": "Header", + "Add a Nested Property": "Geschachteltes Feld hinzufügen", + "Edit field": "Feld bearbeiten", + "There was an error while guessing the schema of your configured data stream": "Beim Erkennen des Schemas der Datenquelle ist ein Fehler aufgetreten", + "Service Selection": "Serviceauswahl", + "Basic Settings": "Basiseinstellungen", + "Save as template": "Als Vorlage speichern", + "Any available service": "Jeder verfügbare Service", + "Restrict to service tags": "Auf Service-Tags beschränken", "Sites & Areas": "Standorte & Bereiche", "Manage your organization's sites and production areas": "Verwaltung der Standorte und Produktionsbereiche", "New site": "Neuer Standort", @@ -378,7 +426,6 @@ "Edit user": "Benutzer bearbeiten", "Delete service": "Service löschen", "New User": "Neuer Benutzer", - "Email": "E-Mail", "Full Name": "Vor- und Nachname", "Last Login": "Letzte Anmeldung", "Delete user": "Benutzer löschen", @@ -390,11 +437,7 @@ "Settings of externally-managed users cannot be changed.": "Die Einstellungen von extern verwalteten Benutzern können nicht geändert werden.", "Must be a valid email address.": "Muss eine gültige E-Mail-Adresse sein.", "Changing the current user's email will require a re-login.": "Änderung der E-Mail-Adresse erfordert eine erneute Anmeldung.", - "Password": "Passwort", "Auto-create password and send to user": "Passwort automatisch generieren und an den Benutzer versenden", - "Initial password": "Ursprüngliches Passwort", - "Repeat password": "Passwort wiederholen", - "Passwords do not match.": "Die Passwörter stimmen nicht überein.", "Client Secret": "Client-Schlüssel", "Minimum length 35 characters.": "Mindestens 35 Zeichen.", "Account": "Konto", @@ -472,20 +515,17 @@ "Configure trusted and rejected OPC-UA certificates": "Konfiguration der vertrauenswürdigen und abgelehnten OPC-UA Zertifikate", "Service Group": "Service-Gruppe", "Service ID": "Service-ID", - "Refresh": "Neu laden", "View service details": "Service-Details anzeigen", "Service Name": "Service-Name", "Issuer": "Aussteller", "Expires": "Läuft aus", "Certificate Details": "Zertifikat-Details", "Details": "Einzelheiten", - "Reject": "Ablehnen", "Trust": "Vertrauen", "Delete certificate": "Zertifikat löschen", "Install selected": "Ausgewählte installieren", "Uninstall selected": "Ausgewählte deinstallieren", "All": "Alle", - "Adapters": "Adapter", "Data Streams": "Datenströme", "Data Processors": "Datenprozessoren", "Data Sinks": "Datensenken", @@ -571,7 +611,7 @@ "install": "installieren", "uninstall": "deinstallieren", "Press 'Next' to start the process.": "Auf \"Weiter\" drücken, um den Vorgang zu starten.", - "{{action}} {{ current }} of {{ total }} ({{ name }})...{{ status }}": "{{Aktion}} {{ current }} von {{ total }} ({{ Name }})...{{ Status }}", + "{{action}} {{ current }} of {{ total }} ({{ name }})...{{ status }}": "{{action}} {{ current }} von {{ total }} ({{name}})...{{ status }}", "Installing": "Installation von", "Uninstalling": "Deinstallation von", "More Details:": "Mehr Details:", @@ -588,9 +628,11 @@ "Bucket": "Bucket", "Enter Bucket Name": "Bucketnamen eingeben", "Region": "Region", - "Select Region": "Region auswählen", - "Truncate Data": "Daten leeren", + "Enter Region Name": "Name der Region eingeben", + "Do you really want to delete the export provider?": "Exportprovider wirklich löschen?", + "This operation cannot be undone. Please ensure that the data provider is not used in a datalake retention.": "Dieser Vorgang kann nicht rückgängig gemacht werden. Bitte stellen Sie sicher, dass der Provider in keiner Speicherrichtlinie verwendet wird.", "Delete Data": "Daten löschen", + "Truncate Data": "Daten leeren", "Start Sync": "Synchronisierung starten", "Delete Sync": "Sync löschen", "Data Retention Action": "Aktion", @@ -666,6 +708,8 @@ "to": "zu", "Are you sure you want to delete this chart?": "Sind Sie sicher, dass Sie dieses Diagramm löschen wollen?", "The chart will be removed from all dashboards as well. This action cannot be undone!": "Das Diagramm wird auch aus allen Dashboards entfernt. Diese Aktion kann nicht rückgängig gemacht werden!", + "Do you want to link the chart to an Asset?": "Diagramm mit einem Asset verknüpfen?", + "Update asset links or close.": "Asset-Links aktualisieren oder schließen.", "Save changes?": "Änderungen speichern?", "Update all changes to chart or discard current changes.": "Aktualisieren Sie alle Änderungen im Diagramm oder verwerfen Sie die aktuellen Änderungen.", "Discard changes": "Änderungen verwerfen", @@ -694,7 +738,10 @@ "Updating adapter {{adapterName}}": "Aktualisieren des Adapters {{AdapterName}}", "Creating adapter {{adapterName}}": "Adapter erstellen {{adapterName}}", "Starting adapter {{adapterName}}": "Adapter starten {{AdapterName}}", - "Your {{assetTypes}} were successfully added to {{assetIds}}.": "Ihre {{assetTypes}} wurden erfolgreich zu {{assetIds}} hinzugefügt.", + "Your Assets were successfully added.": "Assets erfolgreich hinzugefügt.", + "Your Assets were successfully deleted.": "Assets erfolgreich gelöscht.", + "Edit adapter: ": "Adapter bearbeiten:", + "New adapter: ": "Neuer Adapter:", "General": "Allgemein", "Data Lake": "Data Lake", "Export/Import": "Export/Import", @@ -819,6 +866,5 @@ "Documentation": "Dokumentation", "Error Details": "Fehler-Details", "All {{allResourcesAlias}}": "Alle {{allResourcesAlias}}", - "{{ widgetTitle }} Clone": "{{ widgetTitle }} Kopie", - "{{action}} {{ current }} of {{ total }} ({{ name }})...{{ status }}": "{{action}} {{ current }} von {{ total }} ({{name}})...{{ status }}" + "{{ widgetTitle }} Clone": "{{ widgetTitle }} Kopie" } diff --git a/ui/deployment/i18n/en.json b/ui/deployment/i18n/en.json index aa7fe2af2f..080c8c6bb3 100644 --- a/ui/deployment/i18n/en.json +++ b/ui/deployment/i18n/en.json @@ -52,6 +52,28 @@ "Modify Pipeline": null, "Modify pipeline": null, "Delete Pipeline": null, + "Accept": null, + "Reject": null, + "Restore password": null, + "Email": null, + "Reset password": null, + "Unknown error - contact your administrator to check the mail settings.": null, + "In case this account exists, you'll receive a mail with instructions to restore your password shortly.": null, + "Go to login page": null, + "Register": null, + "Initial password": null, + "Repeat password": null, + "Passwords do not match.": null, + "Login": null, + "Email ": null, + "Password": null, + "Logging in": null, + "User not found or incorrect password provided.": null, + "Please try again": null, + "Forgot password?": null, + "Create new account": null, + "or": null, + "Login with": null, "Preparing pipeline editor...": null, "The tutorial requires pipeline elements that are not yet installed.": null, "Install the following pipeline elements and start the tutorial again:": null, @@ -197,6 +219,8 @@ "Clone chart": null, "Delete chart": null, "Chart Name": null, + "Add to Asset": null, + "Add To Asset": null, "Discard": null, "Data": null, "Visualization": null, @@ -257,6 +281,8 @@ "Grid columns": null, "Time settings": null, "Use global time settings instead of chart time settings": null, + "Add Dashboard to Assets": null, + "Add the current dashboard to an existing asset": null, "New dashboard title": null, "Clone options": null, "Deep clone (also clone widgets)": null, @@ -327,12 +353,23 @@ "Allow anonymous access through public link": null, "URL": null, "(no log messages available)": null, + "Adapters": null, "New adapter": null, "Start all adapters": null, "Stop all adapters": null, + "Refresh adapters": null, "Messages": null, "Last message": null, - "Add to Asset": null, + "Select Adapter": null, + "Create adapter": null, + "Docs": null, + "Refresh": null, + "Last published message": null, + "Published messages": null, + "Adapter running": null, + "Adapter stopped": null, + "Configure fields": null, + "Start adapter": null, "Add Adapter to an existing Asset": null, "Remove Duplicates": null, "Avoid duplicated events within a certain time interval": null, @@ -348,6 +385,17 @@ "Show code to programmatically deploy this adapter over the API": null, "Start Adapter": null, "Update Adapter": null, + "Measurement": null, + "Dimension": null, + "Header": null, + "Add a Nested Property": null, + "Edit field": null, + "There was an error while guessing the schema of your configured data stream": null, + "Service Selection": null, + "Basic Settings": null, + "Save as template": null, + "Any available service": null, + "Restrict to service tags": null, "Sites & Areas": null, "Manage your organization's sites and production areas": null, "New site": null, @@ -378,7 +426,6 @@ "Edit user": null, "Delete service": null, "New User": null, - "Email": null, "Full Name": null, "Last Login": null, "Delete user": null, @@ -390,11 +437,7 @@ "Settings of externally-managed users cannot be changed.": null, "Must be a valid email address.": null, "Changing the current user's email will require a re-login.": null, - "Password": null, "Auto-create password and send to user": null, - "Initial password": null, - "Repeat password": null, - "Passwords do not match.": null, "Client Secret": null, "Minimum length 35 characters.": null, "Account": null, @@ -472,20 +515,17 @@ "Configure trusted and rejected OPC-UA certificates": null, "Service Group": null, "Service ID": null, - "Refresh": null, "View service details": null, "Service Name": null, "Issuer": null, "Expires": null, "Certificate Details": null, "Details": null, - "Reject": null, "Trust": null, "Delete certificate": null, "Install selected": null, "Uninstall selected": null, "All": null, - "Adapters": null, "Data Streams": null, "Data Processors": null, "Data Sinks": null, @@ -571,7 +611,7 @@ "install": null, "uninstall": null, "Press 'Next' to start the process.": null, - "{{action}} {{ current }} of {{ total }} ({{ name }})...{{ status }}": null, + "{{action}} {{ current }} of {{ total }} ({{ name }})...{{ status }}": "{{action}} {{ current }} of {{ total }} ({{name}})...{{ status }}", "Installing": null, "Uninstalling": null, "More Details:": null, @@ -588,9 +628,11 @@ "Bucket": null, "Enter Bucket Name": null, "Region": null, - "Select Region": null, - "Truncate Data": null, + "Enter Region Name": null, + "Do you really want to delete the export provider?": null, + "This operation cannot be undone. Please ensure that the data provider is not used in a datalake retention.": null, "Delete Data": null, + "Truncate Data": null, "Start Sync": null, "Delete Sync": null, "Data Retention Action": null, @@ -666,6 +708,8 @@ "to": null, "Are you sure you want to delete this chart?": null, "The chart will be removed from all dashboards as well. This action cannot be undone!": null, + "Do you want to link the chart to an Asset?": null, + "Update asset links or close.": null, "Save changes?": null, "Update all changes to chart or discard current changes.": null, "Discard changes": null, @@ -694,7 +738,10 @@ "Updating adapter {{adapterName}}": "Updating adapter {{adapterName}}", "Creating adapter {{adapterName}}": "Creating adapter {{adapterName}}", "Starting adapter {{adapterName}}": "Starting adapter {{adapterName}}", - "Your {{assetTypes}} were successfully added to {{assetIds}}.": "Your {{assetTypes}} were successfully added to {{assetIds}}.", + "Your Assets were successfully added.": null, + "Your Assets were successfully deleted.": null, + "Edit adapter: ": null, + "New adapter: ": null, "General": null, "Data Lake": null, "Export/Import": null, @@ -819,11 +866,5 @@ "Documentation": null, "Error Details": null, "All {{allResourcesAlias}}": "All {{allResourcesAlias}}", - "{{ widgetTitle }} Clone": "{{ widgetTitle }} Clone", - "Your {{assetTypes}} were successfully added to {{assetIds}}.": "Your {{assetTypes}} were successfully added to {{assetIds}}.", - "Your {{assetTypes}} were successfully deleted from {{assetIds}}.": "Your {{assetTypes}} were successfully deleted from {{assetIds}}.", - "Starting adapter {{adapterName}}": "Starting adapter {{adapterName}}", - "Creating adapter {{adapterName}}": "Creating adapter {{adapterName}}", - "Updating adapter {{adapterName}}": "Updating adapter {{adapterName}}", - "{{action}} {{ current }} of {{ total }} ({{ name }})...{{ status }}": "{{action}} {{ current }} of {{ total }} ({{name}})...{{ status }}" + "{{ widgetTitle }} Clone": "{{ widgetTitle }} Clone" } diff --git a/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.html b/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.html index 52fa1c9191..60c557f1ee 100644 --- a/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.html +++ b/ui/src/app/configuration/datalake-configuration/datalake-configuration.component.html @@ -472,7 +472,12 @@ </table> </div> - <div *ngIf="availableExportProvider.length === 0"> + <div + *ngIf=" + !availableExportProvider || + availableExportProvider.length === 0 + " + > <h5>{{ 'no stored export providers' | translate }}</h5> </div> </sp-split-section> diff --git a/ui/src/app/connect/components/adapter-configuration/adapter-configuration.component.html b/ui/src/app/connect/components/adapter-configuration/adapter-configuration.component.html index ab9892eaff..bdd4381ea0 100644 --- a/ui/src/app/connect/components/adapter-configuration/adapter-configuration.component.html +++ b/ui/src/app/connect/components/adapter-configuration/adapter-configuration.component.html @@ -22,7 +22,7 @@ mat-icon-button color="accent" (click)="openDocumentation()" - matTooltip="Show documentation" + [matTooltip]="'Show documentation' | translate" > <i class="material-icons">menu_book</i> </button> @@ -30,18 +30,14 @@ mat-icon-button color="accent" (click)="removeSelection()" - matTooltip="Cancel" + [matTooltip]="'Cancel' | translate" > <i class="material-icons">close</i> </button> </div> <div fxLayout="column" fxLayoutAlign="center stretch" *ngIf="adapter"> <sp-basic-header-title-component - [title]=" - isEditMode - ? 'Edit adapter: ' + displayName - : 'New adapter: ' + displayName - " + [title]="pageTitle" ></sp-basic-header-title-component> <mat-horizontal-stepper @@ -51,7 +47,9 @@ class="stepper" > <mat-step> - <ng-template matStepLabel>Settings</ng-template> + <ng-template matStepLabel>{{ + 'Settings' | translate + }}</ng-template> <sp-adapter-settings [adapterDescription]="adapter" (updateAdapterDescriptionEmitter)="adapter = $event" @@ -62,7 +60,9 @@ </mat-step> <mat-step> - <ng-template matStepLabel>Configure fields</ng-template> + <ng-template matStepLabel>{{ + 'Configure fields' | translate + }}</ng-template> <sp-event-schema fxLayout="column" fxFlex="100" @@ -76,7 +76,9 @@ </mat-step> <mat-step> - <ng-template matStepLabel>Start Adapter</ng-template> + <ng-template matStepLabel>{{ + 'Start adapter' | translate + }}</ng-template> <sp-start-adapter-configuration [adapterDescription]="adapter" [eventSchema]="adapter.dataStream.eventSchema" diff --git a/ui/src/app/connect/components/adapter-configuration/adapter-configuration.component.ts b/ui/src/app/connect/components/adapter-configuration/adapter-configuration.component.ts index 3f99e7a373..0d3be4d5a6 100644 --- a/ui/src/app/connect/components/adapter-configuration/adapter-configuration.component.ts +++ b/ui/src/app/connect/components/adapter-configuration/adapter-configuration.component.ts @@ -29,6 +29,7 @@ import { TransformationRuleService } from '../../services/transformation-rule.se import { Router } from '@angular/router'; import { DialogService, PanelType } from '@streampipes/shared-ui'; import { SpAdapterDocumentationDialogComponent } from '../../dialog/adapter-documentation/adapter-documentation-dialog.component'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'sp-adapter-configuration', @@ -47,6 +48,7 @@ export class AdapterConfigurationComponent implements OnInit { linkageData: LinkageData[]; myStepper: MatStepper; parentForm: UntypedFormGroup; + pageTitle = ''; private eventSchemaComponent: EventSchemaComponent; @@ -56,10 +58,14 @@ export class AdapterConfigurationComponent implements OnInit { private shepherdService: ShepherdService, private _formBuilder: UntypedFormBuilder, private router: Router, + private translate: TranslateService, ) {} ngOnInit() { this.parentForm = this._formBuilder.group({}); + this.pageTitle = this.isEditMode + ? this.translate.instant('Edit adapter: ') + this.displayName + : this.translate.instant('New adapter: ') + this.displayName; } removeSelection() { diff --git a/ui/src/app/connect/components/adapter-configuration/adapter-settings/adapter-deployment-settings/adapter-deployment-settings.component.html b/ui/src/app/connect/components/adapter-configuration/adapter-settings/adapter-deployment-settings/adapter-deployment-settings.component.html index 45e0cdcc87..6ca9deab21 100644 --- a/ui/src/app/connect/components/adapter-configuration/adapter-settings/adapter-deployment-settings/adapter-deployment-settings.component.html +++ b/ui/src/app/connect/components/adapter-configuration/adapter-settings/adapter-deployment-settings/adapter-deployment-settings.component.html @@ -21,14 +21,16 @@ [(ngModel)]="deploymentMode" (change)="handleSelectionChange($event)" > - <mat-radio-button value="all">Any available service</mat-radio-button> + <mat-radio-button value="all">{{ + 'Any available service' | translate + }}</mat-radio-button> <mat-radio-button value="filter" [disabled]=" deploymentMode === 'all' && availableServiceTags.length === 0 " > - Restrict to service tags + {{ 'Restrict to service tags' | translate }} </mat-radio-button> </mat-radio-group> diff --git a/ui/src/app/connect/components/adapter-configuration/adapter-settings/adapter-settings.component.html b/ui/src/app/connect/components/adapter-configuration/adapter-settings/adapter-settings.component.html index 2df9bf7345..eddabccb37 100644 --- a/ui/src/app/connect/components/adapter-configuration/adapter-settings/adapter-settings.component.html +++ b/ui/src/app/connect/components/adapter-configuration/adapter-settings/adapter-settings.component.html @@ -19,7 +19,7 @@ <div fxFlex="100" fxLayout="column"> <div fxFlex="100" fxLayout="column"> <sp-basic-inner-panel - panelTitle="Service Selection" + [panelTitle]="'Service Selection' | translate" outerMargin="20px 0px" > <sp-adapter-deployment-settings @@ -30,7 +30,7 @@ </sp-adapter-deployment-settings> </sp-basic-inner-panel> <sp-basic-inner-panel - panelTitle="Basic Settings" + [panelTitle]="'Basic Settings' | translate" outerMargin="20px 0px" > <div @@ -86,7 +86,7 @@ (click)="removeSelection()" data-cy="connect-new-adapter-cancel" > - Cancel + {{ 'Cancel' | translate }} </button> <button mat-button @@ -95,7 +95,7 @@ data-cy="create-template" (click)="openTemplateDialog()" > - Store config as template + {{ 'Save as template' | translate }} </button> <div id="specific-settings-next-button"> <button @@ -106,7 +106,7 @@ color="accent" mat-flat-button > - Next + {{ 'Next' | translate }} </button> </div> </div> diff --git a/ui/src/app/connect/components/adapter-configuration/schema-editor/error-message/error-message.component.html b/ui/src/app/connect/components/adapter-configuration/schema-editor/error-message/error-message.component.html index bdd48b8862..70f5c17c8c 100644 --- a/ui/src/app/connect/components/adapter-configuration/schema-editor/error-message/error-message.component.html +++ b/ui/src/app/connect/components/adapter-configuration/schema-editor/error-message/error-message.component.html @@ -19,8 +19,10 @@ <div fxLayout="column" fxFlex="100"> <div fxLayout="row" fxLayoutAlign="center center" fxFlex="100"> <div fxLayoutAlign="start center" class="error-text"> - There was an error while guessing the schema of your - configured data stream: + {{ + 'There was an error while guessing the schema of your configured data stream' + | translate + }}: </div> </div> <div fxLayout="row" fxLayoutAlign="center center" class="mt-10"> diff --git a/ui/src/app/connect/components/adapter-configuration/schema-editor/event-property-row/event-property-row.component.html b/ui/src/app/connect/components/adapter-configuration/schema-editor/event-property-row/event-property-row.component.html index 23abf9e86c..56e697d9b3 100644 --- a/ui/src/app/connect/components/adapter-configuration/schema-editor/event-property-row/event-property-row.component.html +++ b/ui/src/app/connect/components/adapter-configuration/schema-editor/event-property-row/event-property-row.component.html @@ -124,15 +124,17 @@ class="small-select" [attr.data-cy]="'property-scope-' + label" > - <mat-option value="MEASUREMENT_PROPERTY" - >Measurement</mat-option - > + <mat-option value="MEASUREMENT_PROPERTY">{{ + 'Measurement' | translate + }}</mat-option> <mat-option *ngIf="runtimeType !== 'FLOAT'" value="DIMENSION_PROPERTY" - >Dimension</mat-option + >{{ 'Dimension' | translate }}</mat-option > - <mat-option value="HEADER_PROPERTY">Header</mat-option> + <mat-option value="HEADER_PROPERTY">{{ + 'Header' | translate + }}</mat-option> </mat-select> </mat-form-field> </div> @@ -144,7 +146,9 @@ mat-button (click)="addNestedProperty(node.data)" > - <mat-icon matTooltip="Add a Nested Property">queue</mat-icon> + <mat-icon [matTooltip]="'Add a Nested Property' | translate" + >queue</mat-icon + > </button> </div> <div @@ -159,7 +163,7 @@ (click)="openEditDialog(node.data)" [attr.data-cy]="'edit-' + label.toLowerCase()" > - <mat-icon>edit</mat-icon> Edit field + <mat-icon>edit</mat-icon> {{ 'Edit field' | translate }} </button> </div> <div fxLayoutAlign="end center"> diff --git a/ui/src/app/connect/components/adapter-details/adapter-details-code/adapter-details-code.component.html b/ui/src/app/connect/components/adapter-details/adapter-details-code/adapter-details-code.component.html index 6a93d34e7f..19d6644f36 100644 --- a/ui/src/app/connect/components/adapter-details/adapter-details-code/adapter-details-code.component.html +++ b/ui/src/app/connect/components/adapter-details/adapter-details-code/adapter-details-code.component.html @@ -26,7 +26,7 @@ @if (adapter) { <div fxLayout="column"> <sp-basic-header-title-component - [title]="adapter.name + ' - Data'" + [title]="adapter.name + ' - ' + 'Data' | translate" ></sp-basic-header-title-component> <sp-adapter-code-panel [adapterDescription]="adapter" diff --git a/ui/src/app/connect/components/adapter-details/adapter-details-data/adapter-details-data.component.html b/ui/src/app/connect/components/adapter-details/adapter-details-data/adapter-details-data.component.html index 62e5d66e13..ae3a3a1b6d 100644 --- a/ui/src/app/connect/components/adapter-details/adapter-details-data/adapter-details-data.component.html +++ b/ui/src/app/connect/components/adapter-details/adapter-details-data/adapter-details-data.component.html @@ -31,11 +31,11 @@ <div fxFlex fxLayoutAlign="end center"> @if (adapter.running) { <div class="adapter-status status-running"> - Adapter running + {{ 'Adapter running' | translate }} </div> } @else { <div class="adapter-status status-stopped"> - Adapter stopped + {{ 'Adapter stopped' | translate }} </div> } </div> diff --git a/ui/src/app/connect/components/adapter-details/adapter-details-logs/adapter-details-logs.component.html b/ui/src/app/connect/components/adapter-details/adapter-details-logs/adapter-details-logs.component.html index 9de320af3b..9010b685dd 100644 --- a/ui/src/app/connect/components/adapter-details/adapter-details-logs/adapter-details-logs.component.html +++ b/ui/src/app/connect/components/adapter-details/adapter-details-logs/adapter-details-logs.component.html @@ -27,7 +27,7 @@ mat-icon-button color="accent" class="mr-10" - matTooltip="Refresh" + [matTooltip]="'Refresh' | translate" (click)="triggerUpdate()" > <i class="material-icons">refresh</i> diff --git a/ui/src/app/connect/components/adapter-details/adapter-details-metrics/adapter-details-metrics.component.html b/ui/src/app/connect/components/adapter-details/adapter-details-metrics/adapter-details-metrics.component.html index 8f6ae096f8..a247b52eb1 100644 --- a/ui/src/app/connect/components/adapter-details/adapter-details-metrics/adapter-details-metrics.component.html +++ b/ui/src/app/connect/components/adapter-details/adapter-details-metrics/adapter-details-metrics.component.html @@ -27,7 +27,7 @@ mat-icon-button color="accent" class="mr-10" - matTooltip="Refresh" + [matTooltip]="'Refresh' | translate" (click)="triggerUpdate()" > <i class="material-icons">refresh</i> @@ -36,8 +36,8 @@ <div fxFlex="100" fxLayout="column" *ngIf="adapter && adapterMetrics"> <sp-simple-metrics [elementName]="adapter.name" - lastPublishedLabel="Last published message" - statusValueLabel="Published messages" + [lastPublishedLabel]="'Last published message' | translate" + [statusValueLabel]="'Published messages' | translate" [lastTimestamp]="adapterMetrics.lastTimestamp" [statusValue]="adapterMetrics.messagesOut.counter" > diff --git a/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.html b/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.html index 5a38642a5d..df28d5a7a7 100644 --- a/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.html +++ b/ui/src/app/connect/components/data-marketplace/adapter-description/adapter-description.component.html @@ -46,18 +46,18 @@ fxFlex mat-flat-button (click)="createEmitter.emit(adapter.appId)" - matTooltip="Create adapter" + [matTooltip]="'Create adapter' | translate" > - <span>Create</span> + <span>{{ 'Create' | translate }}</span> <mat-icon>add</mat-icon> </button> <button mat-flat-button class="mat-basic" (click)="openDocumentation($event)" - matTooltip="Show documentation" + [matTooltip]="'Show documentation' | translate" > - <span>Docs</span> + <span>{{ 'Docs' | translate }}</span> <mat-icon>menu_book</mat-icon> </button> </div> diff --git a/ui/src/app/connect/components/data-marketplace/data-marketplace.component.html b/ui/src/app/connect/components/data-marketplace/data-marketplace.component.html index 838c9afbb6..c00a3cfb27 100644 --- a/ui/src/app/connect/components/data-marketplace/data-marketplace.component.html +++ b/ui/src/app/connect/components/data-marketplace/data-marketplace.component.html @@ -17,7 +17,7 @@ --> <sp-basic-view - showBackLink="true" + [showBackLink]="true" [backLinkTarget]="['connect']" [padding]="true" > @@ -30,7 +30,7 @@ </div> <div fxLayout="column" fxFlex="100"> <sp-basic-header-title-component - title="Select Adapter" + [title]="'Select Adapter' | translate" ></sp-basic-header-title-component> <div fxFlex="100" fxLayout="column" fxLayoutAlign="center start"> <div diff --git a/ui/src/app/connect/components/existing-adapters/existing-adapters.component.html b/ui/src/app/connect/components/existing-adapters/existing-adapters.component.html index abd0e5d7be..b91e06fa03 100644 --- a/ui/src/app/connect/components/existing-adapters/existing-adapters.component.html +++ b/ui/src/app/connect/components/existing-adapters/existing-adapters.component.html @@ -18,7 +18,7 @@ <sp-asset-browser filteredAssetLinkType="adapter" - allResourcesAlias="Adapters" + [allResourcesAlias]="'Adapters' | translate" [resourceCount]="existingAdapters.length" (filterIdsEmitter)="applyAdapterFilters($event)" > @@ -85,7 +85,7 @@ </div> <button mat-icon-button - matTooltip="Refresh adapters" + [matTooltip]="'Refresh adapters' | translate" matTooltipPosition="below" color="accent" (click)="getAdaptersRunning()" @@ -96,7 +96,7 @@ </div> <div fxFlex="100" fxLayout="column"> <sp-basic-header-title-component - title="Adapters" + [title]="'Adapters' | translate" ></sp-basic-header-title-component> <div fxFlex="100" fxLayout="row" fxLayoutAlign="center start"> <sp-table diff --git a/ui/src/app/connect/components/filter-toolbar/filter-toolbar.component.html b/ui/src/app/connect/components/filter-toolbar/filter-toolbar.component.html index 7f790adbdd..639661fe96 100644 --- a/ui/src/app/connect/components/filter-toolbar/filter-toolbar.component.html +++ b/ui/src/app/connect/components/filter-toolbar/filter-toolbar.component.html @@ -31,7 +31,7 @@ > <input matInput - placeholder="Find Element" + [placeholder]="'Search' | translate" value="" (input)="updateFilterTerm($event.target.value)" name="something" diff --git a/ui/src/app/login/components/login/login.component.html b/ui/src/app/login/components/login/login.component.html index d7f9463461..02ca813794 100644 --- a/ui/src/app/login/components/login/login.component.html +++ b/ui/src/app/login/components/login/login.component.html @@ -19,13 +19,13 @@ @if (configReady) { <sp-auth-box [linkSettings]="loginSettings.linkSettings"> <div fxFlex="100" fxLayout="column" fxLayoutAlign="center start"> - <h1>Login</h1> + <h1>{{ 'Login' | translate }}</h1> </div> <div fxFlex="100" fxLayout="column" class="mt-10"> <form [formGroup]="parentForm" fxFlex="100" fxLayout="column"> <div fxFlex="100" fxLayout="column"> <mat-form-field fxFlex color="accent"> - <mat-label>Email</mat-label> + <mat-label>{{ 'Email ' | translate }}</mat-label> <input formControlName="username" matInput @@ -36,7 +36,7 @@ /> </mat-form-field> <mat-form-field fxFlex color="accent"> - <mat-label>Password</mat-label> + <mat-label>{{ 'Password' | translate }}</mat-label> <input formControlName="password" matInput @@ -55,8 +55,10 @@ (click)="doLogin()" [disabled]="!parentForm.valid || loading" > - <span *ngIf="loading">Logging in...</span> - <span *ngIf="!loading">Login</span> + <span *ngIf="loading" + >{{ 'Logging in' | translate }}...</span + > + <span *ngIf="!loading">{{ 'Login' | translate }}</span> </button> <mat-spinner [mode]="'indeterminate'" @@ -66,15 +68,18 @@ ></mat-spinner> <div class="md-warn" *ngIf="authenticationFailed"> <h5 class="login-error"> - User not found or incorrect password provided.<br />Please - try again. + {{ + 'User not found or incorrect password provided.' + | translate + }}<br /> + {{ 'Please try again' | translate }} </h5> </div> <div fxLayout="row" class="mt-10"> <div *ngIf="loginSettings.allowPasswordRecovery"> - <a [routerLink]="['/restore-password']" - >Forgot password?</a - > + <a [routerLink]="['/restore-password']">{{ + 'Forgot password?' | translate + }}</a> </div> <span style="margin-left: 5px; margin-right: 5px" @@ -86,9 +91,9 @@ | </span> <div *ngIf="loginSettings.allowSelfRegistration"> - <a [routerLink]="['/register']" - >Create new account</a - > + <a [routerLink]="['/register']">{{ + 'Create new account' | translate + }}</a> </div> </div> <div @@ -97,7 +102,7 @@ *ngIf="loginSettings.oAuthSettings?.enabled" > <div class="separator"> - <span>or</span> + <span>{{ 'or' | translate }}</span> </div> <div fxLayout="column" @@ -113,7 +118,8 @@ (click)="doOAuthLogin(provider.registrationId)" > <span *ngIf="!loading" - >Login with {{ provider.name }}</span + >{{ 'Login with' | translate }} + {{ provider.name }}</span > </button> </div> diff --git a/ui/src/app/login/components/register/register.component.html b/ui/src/app/login/components/register/register.component.html index b9080709c2..8268a73d63 100644 --- a/ui/src/app/login/components/register/register.component.html +++ b/ui/src/app/login/components/register/register.component.html @@ -18,20 +18,20 @@ <sp-auth-box [linkSettings]="loginSettings.linkSettings" *ngIf="configReady"> <div fxFlex="100" fxLayout="column" fxLayoutAlign="center start"> - <h1>Register</h1> + <h1>{{ 'Register' | translate }}</h1> </div> <div fxLayout="column" fxFlex="100"> <form [formGroup]="parentForm"> <div fxLayout="column"> <mat-form-field color="accent"> - <mat-label>Email</mat-label> + <mat-label>{{ 'Email' | translate }}</mat-label> <input formControlName="username" fxFlex matInput /> <mat-error *ngIf="parentForm.controls.username.errors" >Must be an email address.</mat-error > </mat-form-field> <mat-form-field color="accent"> - <mat-label>Initial password</mat-label> + <mat-label>{{ 'Initial password' | translate }}</mat-label> <input formControlName="password" fxFlex @@ -41,7 +41,7 @@ /> </mat-form-field> <mat-form-field color="accent"> - <mat-label>Repeat password</mat-label> + <mat-label>{{ 'Repeat password' | translate }}</mat-label> <input formControlName="repeatPassword" fxFlex @@ -50,9 +50,9 @@ required /> </mat-form-field> - <mat-error *ngIf="parentForm.hasError('notMatching')" - >Passwords do not match.</mat-error - > + <mat-error *ngIf="parentForm.hasError('notMatching')">{{ + 'Passwords do not match.' | translate + }}</mat-error> <div class="form-actions" style="margin-top: 20px"> <button mat-button @@ -62,7 +62,7 @@ [disabled]="!parentForm.valid" *ngIf="!registrationSuccess" > - <span>Register</span> + <span>{{ 'Register' | translate }}</span> </button> <mat-spinner [mode]="'indeterminate'" @@ -78,11 +78,13 @@ </div> <div class="md-success" *ngIf="registrationSuccess"> <h5 class="info-box register-success"> - We've sent out a confirmation mail to this address. + {{ 'We've sent out a confirmation mail to this address.' | translate }} </h5> </div> <div class="mt-10"> - <a [routerLink]="['/login']">Go to login page</a> + <a [routerLink]="['/login']">{{ + 'Go to login page' | translate + }}</a> </div> </div> </div> diff --git a/ui/src/app/login/components/restore-password/restore-password.component.html b/ui/src/app/login/components/restore-password/restore-password.component.html index ece5bf3b73..60c4ebeba7 100644 --- a/ui/src/app/login/components/restore-password/restore-password.component.html +++ b/ui/src/app/login/components/restore-password/restore-password.component.html @@ -18,17 +18,17 @@ <sp-auth-box [linkSettings]="loginSettings.linkSettings" *ngIf="configReady"> <div fxFlex="100" fxLayout="column" fxLayoutAlign="center start"> - <h1>Restore password</h1> + <h1>{{ 'Restore password' | translate }}</h1> <h5> - Enter your mail address and we'll send you a link to restore your - password. + {{ 'Enter your mail address and we'll send you a link to restore your + password.' | translate }} </h5> </div> <div fxLayout="column" fxFlex="100"> <form [formGroup]="parentForm"> <div fxLayout="column"> <mat-form-field color="accent"> - <mat-label>Email</mat-label> + <mat-label>{{ 'Email' | translate }}</mat-label> <input formControlName="username" fxFlex matInput /> </mat-form-field> <div class="form-actions" style="margin-top: 20px"> @@ -40,15 +40,17 @@ [disabled]="!parentForm.valid" *ngIf="!restoreSuccess" > - <span>Reset password</span> + <span>{{ 'Reset password' | translate }}</span> </button> <div class="md-warn" *ngIf="restoreCompleted && !restoreSuccess" > <h5 class="info-box register-error"> - Unknown error - contact your administrator to check - the mail settings. + {{ + 'Unknown error - contact your administrator to check + the mail settings.' | translate + }} </h5> </div> <div @@ -56,12 +58,16 @@ *ngIf="restoreCompleted && restoreSuccess" > <h5 class="info-box register-success"> - In case this account exists, you'll receive a mail - with instructions to restore your password shortly. + {{ + "In case this account exists, you'll receive a mail with instructions to restore your password shortly." + | translate + }} </h5> </div> <div class="mt-10"> - <a [routerLink]="['/login']">Go to login page</a> + <a [routerLink]="['/login']">{{ + 'Go to login page' | translate + }}</a> </div> </div> </div> diff --git a/ui/src/app/login/components/terms/terms.component.html b/ui/src/app/login/components/terms/terms.component.html index 0edc6acacb..150d9e74cd 100644 --- a/ui/src/app/login/components/terms/terms.component.html +++ b/ui/src/app/login/components/terms/terms.component.html @@ -31,14 +31,14 @@ <mat-divider></mat-divider> <div fxLayout="row" fxLayoutGap="10px" fxFlex="none" class="mt-10"> <button mat-flat-button (click)="onTermsAcknowledged()"> - Accept + {{ 'Accept' | translate }} </button> <button mat-flat-button class="mat-basic" (click)="onTermsRejected()" > - Reject + {{ 'Reject' | translate }} </button> </div> </div> diff --git a/ui/src/app/login/login.module.ts b/ui/src/app/login/login.module.ts index 194c0f1151..0a8416e961 100644 --- a/ui/src/app/login/login.module.ts +++ b/ui/src/app/login/login.module.ts @@ -41,6 +41,7 @@ import { SetNewPasswordComponent } from './components/set-new-password/set-new-p import { ActivateAccountComponent } from './components/activate-account/activate-account.component'; import { PlatformServicesModule } from '@streampipes/platform-services'; import { TermsComponent } from './components/terms/terms.component'; +import { TranslatePipe } from '@ngx-translate/core'; @NgModule({ imports: [ @@ -60,6 +61,7 @@ import { TermsComponent } from './components/terms/terms.component'; ReactiveFormsModule, MatProgressBarModule, PlatformServicesModule, + TranslatePipe, ], declarations: [ ActivateAccountComponent,
