This is an automated email from the ASF dual-hosted git repository. mfholz pushed a commit to branch translate-data-download in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit 6eed0f9f2b41e662c545577c4808becb41e0ebd1 Author: Marcelfrueh <[email protected]> AuthorDate: Wed Mar 5 13:19:55 2025 +0100 Add translation to "Data download" Module --- ui/deployment/i18n/de.json | 36 +- ui/deployment/i18n/en.json | 36 +- ui/package-lock.json | 462 ++++----------------- ui/package.json | 2 +- .../components/download/download.component.html | 6 +- .../select-data-missing-values.component.html | 8 +- .../select-data-range.component.html | 12 +- .../select-format/select-format.component.html | 32 +- .../data-download-dialog.component.html | 12 +- .../shared-ui/src/lib/shared-ui.module.ts | 2 + 10 files changed, 178 insertions(+), 430 deletions(-) diff --git a/ui/deployment/i18n/de.json b/ui/deployment/i18n/de.json index ceb9bbc46c..9ce4e9e0b1 100644 --- a/ui/deployment/i18n/de.json +++ b/ui/deployment/i18n/de.json @@ -80,10 +80,6 @@ "False": "Falsch", "Rounding": "Rundung", "Inner Radius": "Innerer Radius", - "Add custom color mapping": "Benutzerdefiniertes Mapping hinzufügen", - "Add Mapping": "Mapping hinzufügen", - "Value": "Wert", - "Remove Mapping": "Mapping entfernen", "Fields": "Felder", "Latitude": "Breitengrad", "Longitude": "Längengrad", @@ -145,6 +141,10 @@ "Active": "Aktiv", "Wheel": "Rad", "Slider": "Slider", + "Add custom color mapping": "Benutzerdefiniertes Mapping hinzufügen", + "Add Mapping": "Mapping hinzufügen", + "Value": "Wert", + "Remove Mapping": "Mapping entfernen", "Charts": "Diagramme", "New chart": "Neues Diagramm", "Chart": "Diagramm", @@ -233,5 +233,31 @@ "Minute": "Minute", "Hour": "Stunde", "Day": "Tag", - "Week": "Woche" + "Week": "Woche", + "Select Data": "Daten auswählen", + "Previous": "Zurück", + "Download": "Download", + "Select Format": "Format auswählen", + "Download Format": "Download-Format", + "JSON": "JSON", + "CSV": "CSV", + "EXCEL (XLSX)": "EXCEL (XLSX)", + "Delimiter": "Trennzeichen", + "Excel template": "Excel Vorlage", + "Use uploaded file template": "Hochgeladene Vorlage verwenden", + "Choose template": "Vorlage auswählen", + "First row index to append data": "Erster Zeilenindex an denen Daten angehängt werden sollen", + "Header column name": "Spaltenname", + "Use field key (runtime name) as header column": "Laufzeitname als Spaltenname verwenden", + "Use field label as header column if available": "Label als Spaltenname verwenden (falls vorhanden)", + "Data Range": "Datumsbereich", + "Currently configured query": "Aktuell konfigurierte Anfrage", + "All data in database": "Alle Daten in der Datenbank", + "All data in custom time interval": "Alle Daten im vorgegebenen Zeitintervall", + "From": "Von", + "To": "Bis", + "Behaviour in case of missing values": "Verhalten im Falle von fehlenden Daten", + "Ignore lines with missing value": "Zeilen ohne Daten ignorieren", + "Leave entry empty": "Leer lassen", + "Download successful": "Download erfolgreich" } diff --git a/ui/deployment/i18n/en.json b/ui/deployment/i18n/en.json index 90499c0a0e..d5a1bf2d4b 100644 --- a/ui/deployment/i18n/en.json +++ b/ui/deployment/i18n/en.json @@ -80,10 +80,6 @@ "False": null, "Rounding": null, "Inner Radius": null, - "Add custom color mapping": null, - "Add Mapping": null, - "Value": null, - "Remove Mapping": null, "Fields": null, "Latitude": null, "Longitude": null, @@ -145,6 +141,10 @@ "Active": null, "Wheel": null, "Slider": null, + "Add custom color mapping": null, + "Add Mapping": null, + "Value": null, + "Remove Mapping": null, "Charts": null, "New chart": null, "Chart": null, @@ -233,5 +233,31 @@ "Minute": null, "Hour": null, "Day": null, - "Week": null + "Week": null, + "Select Data": null, + "Previous": null, + "Download": null, + "Select Format": null, + "Download Format": null, + "JSON": null, + "CSV": null, + "EXCEL (XLSX)": null, + "Delimiter": null, + "Excel template": null, + "Use uploaded file template": null, + "Choose template": null, + "First row index to append data": null, + "Header column name": null, + "Use field key (runtime name) as header column": null, + "Use field label as header column if available": null, + "Data Range": null, + "Currently configured query": null, + "All data in database": null, + "All data in custom time interval": null, + "From": null, + "To": null, + "Behaviour in case of missing values": null, + "Ignore lines with missing value": null, + "Leave entry empty": null, + "Download successful": null } diff --git a/ui/package-lock.json b/ui/package-lock.json index d4dbd860be..fe113ad40b 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -1704,6 +1704,36 @@ "semver": "bin/semver.js" } }, + "node_modules/@angular/compiler-cli/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@angular/compiler-cli/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@angular/core": { "version": "18.2.13", "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.13.tgz", @@ -6290,66 +6320,6 @@ "chokidar": "^3.0.0" } }, - "node_modules/@types/browser-sync/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/@types/browser-sync/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/browser-sync/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@types/browser-sync/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/@types/codemirror": { "version": "5.60.15", "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.15.tgz", @@ -8678,66 +8648,6 @@ "stream-throttle": "^0.1.3" } }, - "node_modules/browser-sync/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/browser-sync/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browser-sync/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/browser-sync/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/browserslist": { "version": "4.24.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", @@ -9033,19 +8943,39 @@ } }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 8.10.0" }, "funding": { "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/chownr": { @@ -14726,31 +14656,6 @@ "concat-map": "0.0.1" } }, - "node_modules/karma/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/karma/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -14830,19 +14735,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/karma/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/karma/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -14863,32 +14755,6 @@ "dev": true, "license": "MIT" }, - "node_modules/karma/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/karma/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -17238,31 +17104,6 @@ "node": ">=18" } }, - "node_modules/ng-packagr/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/ng-packagr/node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -17352,19 +17193,6 @@ "node": ">=8" } }, - "node_modules/ng-packagr/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/ng-packagr/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -17423,19 +17251,6 @@ "node": ">=8" } }, - "node_modules/ng-packagr/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/ng-packagr/node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -17449,19 +17264,6 @@ "node": ">=8" } }, - "node_modules/ng-packagr/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/ng-packagr/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -19142,17 +18944,27 @@ } }, "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "license": "MIT", "engines": { - "node": ">= 14.18.0" + "node": ">=8.6" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/reflect-metadata": { @@ -19761,44 +19573,6 @@ } } }, - "node_modules/sass/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/sass/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/sass/node_modules/immutable": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", @@ -19806,32 +19580,6 @@ "dev": true, "license": "MIT" }, - "node_modules/sass/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -22568,31 +22316,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/webpack-dev-server/node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -22603,19 +22326,6 @@ "node": ">=0.8" } }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", @@ -22641,32 +22351,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", diff --git a/ui/package.json b/ui/package.json index 66cd84d0db..caf1ba5d1f 100644 --- a/ui/package.json +++ b/ui/package.json @@ -27,7 +27,7 @@ "test-cypress-smoke": "npx cypress run --spec 'cypress/tests/**/*.smoke.spec.ts' --config baseUrl=http://localhost:8082", "test-cypress-all": "npx cypress run --spec 'cypress/tests/**/*.spec.ts' --config baseUrl=http://localhost:8082", "prepare": "cd ../ && husky install ./ui/.husky", - "i18n:extract": "ngx-translate-extract --input ./src --output ./deployment/i18n/{en,de}.json -n --clean --format json", + "i18n:extract": "ngx-translate-extract --input ./src --input ./projects --output ./deployment/i18n/{en,de}.json -n --clean --format json", "i18n:translate": "node ./deployment/i18n-translate.js" }, "dependencies": { diff --git a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/download/download.component.html b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/download/download.component.html index 2e1f30dc39..235bda06b9 100644 --- a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/download/download.component.html +++ b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/download/download.component.html @@ -16,7 +16,7 @@ ~ --> <div fxFlex="100"> - <ng-template matStepLabel>Download</ng-template> + <ng-template matStepLabel>{{ 'Download' | translate }}</ng-template> <div fxLayout="column" fxLayoutAlign="center center" @@ -28,7 +28,7 @@ >{{ downloadProgress.downloadedMBs | number: '1.0-2' }} Mb</label > <button mat-button color="warn" (click)="cancelDownload()"> - Cancel + {{ 'Cancel' | translate }} </button> </div> <div @@ -37,6 +37,6 @@ *ngIf="downloadProgress.finished" > <mat-icon class="icon-check">check</mat-icon> - <h5>Download successful</h5> + <h5>{{ 'Download successful' | translate }}</h5> </div> </div> diff --git a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-data/select-data-missing-values/select-data-missing-values.component.html b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-data/select-data-missing-values/select-data-missing-values.component.html index c507310bd5..aa4a966f02 100644 --- a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-data/select-data-missing-values/select-data-missing-values.component.html +++ b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-data/select-data-missing-values/select-data-missing-values.component.html @@ -16,7 +16,9 @@ ~ --> -<sp-configuration-box title="Behaviour in case of missing values"> +<sp-configuration-box + [title]="'Behaviour in case of missing values' | translate" +> <mat-radio-group class="sp-radio-group" [(ngModel)]="dataExportConfig.missingValueBehaviour" @@ -26,14 +28,14 @@ class="sp-radio-button" data-cy="download-configuration-ignore" > - Ignore lines with missing value + {{ 'Ignore lines with missing value' | translate }} </mat-radio-button> <mat-radio-button value="empty" class="sp-radio-button" data-cy="download-configuration-empty" > - Leave entry empty + {{ 'Leave entry empty' | translate }} </mat-radio-button> </mat-radio-group> </sp-configuration-box> diff --git a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-data/select-data-range/select-data-range.component.html b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-data/select-data-range/select-data-range.component.html index eeef53fca5..908be2ae17 100644 --- a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-data/select-data-range/select-data-range.component.html +++ b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-data/select-data-range/select-data-range.component.html @@ -16,7 +16,7 @@ ~ --> -<sp-configuration-box title="Data Range"> +<sp-configuration-box [title]="'Data Range' | translate"> <mat-radio-group class="sp-radio-group" [(ngModel)]="dataExportConfig.dataRangeConfiguration" @@ -27,21 +27,21 @@ data-cy="download-configuration-visible" *ngIf="dataExplorerDataConfig" > - Currently configured query + {{ 'Currently configured query' | translate }} </mat-radio-button> <mat-radio-button value="all" class="sp-radio-button" data-cy="download-configuration-all" > - All data in database + {{ 'All data in database' | translate }} </mat-radio-button> <mat-radio-button value="customInterval" class="sp-radio-button" data-cy="download-configuration-customInterval" > - All data in custom time interval + {{ 'All data in custom time interval' | translate }} </mat-radio-button> <div @@ -51,12 +51,12 @@ *ngIf="dataExportConfig.dataRangeConfiguration === 'customInterval'" > <div> - <h5>From </h5> + <h5>{{ 'From' | translate }} </h5> <sp-date-input [(date)]="dataExportConfig.dateRange.startDate"> </sp-date-input> </div> <div> - <h5>To </h5> + <h5>{{ 'To' | translate }}</h5> <sp-date-input [(date)]="dataExportConfig.dateRange.endDate"> </sp-date-input> </div> diff --git a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-format/select-format.component.html b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-format/select-format.component.html index ba5fe2b074..07655760b2 100644 --- a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-format/select-format.component.html +++ b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/components/select-format/select-format.component.html @@ -16,9 +16,9 @@ ~ --> -<ng-template matStepLabel>Select Format</ng-template> +<ng-template matStepLabel>{{ 'Select Format' | translate }}</ng-template> <div> - <sp-configuration-box title="Download Format"> + <sp-configuration-box [title]="'Download Format' | translate"> <mat-radio-group class="sp-radio-group" [(ngModel)]="formatExportConfig.format" @@ -28,27 +28,27 @@ class="sp-radio-button" data-cy="download-configuration-json" > - JSON + {{ 'JSON' | translate }} </mat-radio-button> <mat-radio-button value="csv" class="sp-radio-button" data-cy="download-configuration-csv" > - CSV + {{ 'CSV' | translate }} </mat-radio-button> <mat-radio-button value="xlsx" class="sp-radio-button" data-cy="download-configuration-xlsx" > - Excel (XLSX) + {{ 'EXCEL (XLSX)' | translate }} </mat-radio-button> </mat-radio-group> </sp-configuration-box> </div> <div *ngIf="formatExportConfig.format === 'csv'" class="mt-10"> - <sp-configuration-box title="Delimiter"> + <sp-configuration-box [title]="'Delimiter' | translate"> <mat-radio-group [(ngModel)]="formatExportConfig.delimiter" class="sp-radio-group" @@ -72,19 +72,19 @@ *ngIf="formatExportConfig.format === 'xlsx' && hasReadFilePrivilege" fxLayout="column" > - <sp-configuration-box title="Excel template"> + <sp-configuration-box [title]="'Excel template' | translate"> <div fxLayout="column"> <mat-checkbox [(ngModel)]="formatExportConfig.useTemplate" [disabled]="excelTemplates.length === 0" > - Use uploaded file template + {{ 'Use uploaded file template' | translate }} </mat-checkbox> @if (formatExportConfig.useTemplate && excelTemplates.length > 0) { <mat-form-field class="mt-10" color="accent"> <mat-select [(ngModel)]="formatExportConfig.templateId" - placeholder="Choose template" + [placeholder]="'Choose template' | translate" > <mat-option *ngFor="let template of excelTemplates" @@ -95,7 +95,9 @@ </mat-select> </mat-form-field> <mat-form-field color="accent"> - <mat-label>First row index to append data</mat-label> + <mat-label>{{ + 'First row index to append data' | translate + }}</mat-label> <input matInput [(ngModel)]="formatExportConfig.startRow" @@ -112,7 +114,7 @@ formatExportConfig.format === 'csv' " > - <sp-configuration-box title="Header column name"> + <sp-configuration-box [title]="'Header column name' | translate"> <mat-radio-group [(ngModel)]="formatExportConfig.headerColumnName" class="sp-radio-group" @@ -121,13 +123,17 @@ value="key" class="sp-radio-button" data-cy="download-configuration-column-name-key" - >Use field key (runtime name) as header column + >{{ + 'Use field key (runtime name) as header column' | translate + }} </mat-radio-button> <mat-radio-button value="label" class="sp-radio-button" data-cy="download-configuration-column-name-label" - >Use field label as header column if available + >{{ + 'Use field label as header column if available' | translate + }} </mat-radio-button> </mat-radio-group> </sp-configuration-box> diff --git a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/data-download-dialog.component.html b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/data-download-dialog.component.html index 852a3769e1..6f74f131df 100644 --- a/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/data-download-dialog.component.html +++ b/ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/data-download-dialog.component.html @@ -28,7 +28,9 @@ [dataExportConfig]="exportConfig.dataExportConfig" > </sp-select-data> - <ng-template matStepLabel>Select Data</ng-template> + <ng-template matStepLabel>{{ + 'Select Data' | translate + }}</ng-template> </mat-step> <mat-step> @@ -53,7 +55,7 @@ style="margin-right: 10px" (click)="exitDialog()" > - Close + {{ 'Close' | translate }} </button> <button mat-button @@ -63,7 +65,7 @@ *ngIf="downloadDialogStepper.selectedIndex === 1" (click)="previousStep()" > - Previous + {{ 'Previous' | translate }} </button> <button mat-button @@ -73,7 +75,7 @@ (click)="nextStep()" data-cy="download-configuration-next-btn" > - Next + {{ 'Next' | translate }} </button> <button mat-button @@ -83,7 +85,7 @@ (click)="downloadData()" data-cy="download-configuration-download-btn" > - Download + {{ 'Download' | translate }} </button> </div> </div> diff --git a/ui/projects/streampipes/shared-ui/src/lib/shared-ui.module.ts b/ui/projects/streampipes/shared-ui/src/lib/shared-ui.module.ts index 131f813f35..e4eeca1d76 100644 --- a/ui/projects/streampipes/shared-ui/src/lib/shared-ui.module.ts +++ b/ui/projects/streampipes/shared-ui/src/lib/shared-ui.module.ts @@ -82,6 +82,7 @@ import { SpConfigurationBoxComponent } from './components/configuration-box/conf import { DateInputComponent } from './components/date-input/date-input.component'; import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatInputModule } from '@angular/material/input'; +import { TranslateModule } from '@ngx-translate/core'; @NgModule({ declarations: [ @@ -148,6 +149,7 @@ import { MatInputModule } from '@angular/material/input'; MatPaginator, MatRadioModule, MatSort, + TranslateModule.forChild({}), ], providers: [DefaultMatCalendarRangeStrategy, MatRangeDateSelectionModel], exports: [
