diff --git a/cnf/pom.xml b/cnf/pom.xml
index 191ff3f5c5..1e55346ce9 100644
--- a/cnf/pom.xml
+++ b/cnf/pom.xml
@@ -61,7 +61,7 @@
com.squareup.okio
okio-jvm
- 3.9.1
+ 3.10.0
diff --git a/io.openems.backend.application/BackendApp.bndrun b/io.openems.backend.application/BackendApp.bndrun
index 2f9caaea57..c199efdc83 100644
--- a/io.openems.backend.application/BackendApp.bndrun
+++ b/io.openems.backend.application/BackendApp.bndrun
@@ -65,7 +65,7 @@
com.google.gson;version='[2.11.0,2.11.1)',\
com.google.guava;version='[33.4.0,33.4.1)',\
com.google.guava.failureaccess;version='[1.0.2,1.0.3)',\
- com.squareup.okio;version='[3.9.1,3.9.2)',\
+ com.squareup.okio;version='[3.10.0,3.10.1)',\
com.zaxxer.HikariCP;version='[6.2.1,6.2.2)',\
io.openems.backend.alerting;version=snapshot,\
io.openems.backend.application;version=snapshot,\
diff --git a/io.openems.edge.application/EdgeApp.bndrun b/io.openems.edge.application/EdgeApp.bndrun
index 63598ac0cd..941c4bd969 100644
--- a/io.openems.edge.application/EdgeApp.bndrun
+++ b/io.openems.edge.application/EdgeApp.bndrun
@@ -209,7 +209,7 @@
com.google.gson;version='[2.11.0,2.11.1)',\
com.google.guava;version='[33.4.0,33.4.1)',\
com.google.guava.failureaccess;version='[1.0.2,1.0.3)',\
- com.squareup.okio;version='[3.9.1,3.9.2)',\
+ com.squareup.okio;version='[3.10.0,3.10.1)',\
com.sun.jna;version='[5.16.0,5.16.1)',\
io.openems.common;version=snapshot,\
io.openems.edge.application;version=snapshot,\
diff --git a/ui/package-lock.json b/ui/package-lock.json
index 0d46c56b7c..c29da63cbd 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -17,8 +17,8 @@
"@angular/platform-browser-dynamic": "19.0.5",
"@angular/router": "19.0.5",
"@angular/service-worker": "19.0.5",
- "@awesome-cordova-plugins/core": "^6.13.0",
- "@awesome-cordova-plugins/file-opener": "^6.13.0",
+ "@awesome-cordova-plugins/core": "^6.14.0",
+ "@awesome-cordova-plugins/file-opener": "^6.14.0",
"@capacitor-community/file-opener": "^6.0.1",
"@capacitor/android": "^6.2.0",
"@capacitor/app": "^6.0.2",
@@ -84,7 +84,7 @@
"@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^8.19.0",
"@typescript-eslint/parser": "^8.19.0",
- "@typescript-eslint/types": "^8.19.0",
+ "@typescript-eslint/types": "^8.19.1",
"eslint": "^9.17.0",
"eslint-import-resolver-typescript": "^3.7.0",
"eslint-plugin-check-file": "^2.8.0",
@@ -766,9 +766,9 @@
}
},
"node_modules/@awesome-cordova-plugins/core": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/core/-/core-6.13.0.tgz",
- "integrity": "sha512-iqa5TU8HcFns/ND18KFrDVo4rGD4d4Gr5bgACFPwfztNCNmCRp+qkhv/xRBstqZ72qYH2oAJnEE1PTUY+IfX7Q==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/core/-/core-6.14.0.tgz",
+ "integrity": "sha512-oJdmzR8DA/dyZnKlXBnjav0ZNTCacGMEWZOxnrnXqr3I7nVEK0Kr2EIJx7CtAIXxFCpEjQQTH7loFur86O3xpw==",
"dependencies": {
"@types/cordova": "latest"
},
@@ -777,9 +777,9 @@
}
},
"node_modules/@awesome-cordova-plugins/file-opener": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/file-opener/-/file-opener-6.13.0.tgz",
- "integrity": "sha512-0+caltmjJf3BuZiklqaSHsxviDiS4znnJj3RiBfoERfPCRa0HIyO8dywH2EhkOMhYQ5g8gBobTTOJQpV/yQhmw==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/file-opener/-/file-opener-6.14.0.tgz",
+ "integrity": "sha512-EN4SfDWs99zN12pbEMk+NjqDEUbZbOe3Eq9ItTJIT7cyIS2PF+w2qT2QmhnBZdmYOqecIngqmjj+3w+zQnEt+w==",
"dependencies": {
"@types/cordova": "latest"
},
@@ -6767,6 +6767,19 @@
"typescript": ">=4.8.4 <5.8.0"
}
},
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz",
+ "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.19.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.0.tgz",
@@ -6785,6 +6798,19 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": {
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz",
+ "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/type-utils": {
"version": "8.19.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.0.tgz",
@@ -6810,9 +6836,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.19.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz",
- "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz",
+ "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -6849,6 +6875,19 @@
"typescript": ">=4.8.4 <5.8.0"
}
},
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": {
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz",
+ "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/utils": {
"version": "8.19.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.0.tgz",
@@ -6873,6 +6912,19 @@
"typescript": ">=4.8.4 <5.8.0"
}
},
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz",
+ "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/visitor-keys": {
"version": "8.19.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.0.tgz",
@@ -6891,6 +6943,19 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": {
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz",
+ "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@vitejs/plugin-basic-ssl": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz",
diff --git a/ui/package.json b/ui/package.json
index d3795e1acc..48373a8142 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -12,8 +12,8 @@
"@angular/platform-browser-dynamic": "19.0.5",
"@angular/router": "19.0.5",
"@angular/service-worker": "19.0.5",
- "@awesome-cordova-plugins/core": "^6.13.0",
- "@awesome-cordova-plugins/file-opener": "^6.13.0",
+ "@awesome-cordova-plugins/core": "^6.14.0",
+ "@awesome-cordova-plugins/file-opener": "^6.14.0",
"@capacitor-community/file-opener": "^6.0.1",
"@capacitor/android": "^6.2.0",
"@capacitor/app": "^6.0.2",
@@ -79,7 +79,7 @@
"@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^8.19.0",
"@typescript-eslint/parser": "^8.19.0",
- "@typescript-eslint/types": "^8.19.0",
+ "@typescript-eslint/types": "^8.19.1",
"eslint": "^9.17.0",
"eslint-import-resolver-typescript": "^3.7.0",
"eslint-plugin-check-file": "^2.8.0",
diff --git a/ui/src/app/shared/type/language.ts b/ui/src/app/shared/type/language.ts
index 693a81d2b6..6d1e022059 100644
--- a/ui/src/app/shared/type/language.ts
+++ b/ui/src/app/shared/type/language.ts
@@ -42,7 +42,7 @@ export class Language {
public static readonly JA: Language = new Language("Japanese", "ja", "ja", ja, localJA);
public static readonly ALL = [Language.DE, Language.EN, Language.CZ, Language.NL, Language.ES, Language.FR, Language.JA];
- public static readonly DEFAULT = Language.DE;
+ public static readonly DEFAULT = Language.getByKey(environment.defaultLanguage) as Language;
constructor(
public readonly title: string,
diff --git a/ui/src/environments/index.ts b/ui/src/environments/index.ts
index a5790f059f..d1505479fb 100644
--- a/ui/src/environments/index.ts
+++ b/ui/src/environments/index.ts
@@ -11,6 +11,7 @@ export interface Environment {
readonly uiTitle: string;
readonly edgeShortName: string;
readonly edgeLongName: string;
+ readonly defaultLanguage: string;
readonly url: string;
readonly backend: DefaultTypes.Backend;
diff --git a/ui/src/global.scss b/ui/src/global.scss
index 9e8063f82d..50915dddba 100644
--- a/ui/src/global.scss
+++ b/ui/src/global.scss
@@ -82,7 +82,7 @@ formly-field-ion-radio {
white-space: initial;
small {
- white-space: initial;
+ white-space: nowrap;
}
}
diff --git a/ui/src/themes/openems/environments/theme.ts b/ui/src/themes/openems/environments/theme.ts
index d771eb259d..68374dc627 100644
--- a/ui/src/themes/openems/environments/theme.ts
+++ b/ui/src/themes/openems/environments/theme.ts
@@ -6,6 +6,7 @@ export const theme = {
uiTitle: "OpenEMS UI",
edgeShortName: "OpenEMS",
edgeLongName: "Open Energy Management System",
+ defaultLanguage: "de",
docsUrlPrefix: "https://github.com/OpenEMS/openems/blob/develop/",
links: {