From 6402cfe619ad07b76ab69dc06e1c0c02152f0ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 18 Jan 2026 18:44:59 +0100 Subject: [PATCH 01/10] Enforce to use jquery 3 for now, as something seems to be broken with jquery 4 and webpack --- assets/js/app.js | 2 +- package.json | 3 +++ yarn.lock | 7 +------ 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/assets/js/app.js b/assets/js/app.js index c0550373..4dd39581 100644 --- a/assets/js/app.js +++ b/assets/js/app.js @@ -44,7 +44,7 @@ import "./register_events"; import "./tristate_checkboxes"; //Define jquery globally -window.$ = window.jQuery = require("jquery"); +global.$ = global.jQuery = require("jquery"); //Use the local WASM file for the ZXing library import { diff --git a/package.json b/package.json index 66e59737..583b21a2 100644 --- a/package.json +++ b/package.json @@ -73,5 +73,8 @@ "tom-select": "^2.1.0", "ts-loader": "^9.2.6", "typescript": "^5.7.2" + }, + "resolutions": { + "jquery": "^3.5.1" } } diff --git a/yarn.lock b/yarn.lock index 4bc1539e..159961b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4884,12 +4884,7 @@ jpeg-exif@^1.1.4: resolved "https://registry.yarnpkg.com/jpeg-exif/-/jpeg-exif-1.1.4.tgz#781a65b6cd74f62cb1c493511020f8d3577a1c2b" integrity sha512-a+bKEcCjtuW5WTdgeXFzswSrdqi0jk4XlEtZlx5A94wCoBpFjfFTbo/Tra5SpNCl/YFZPvcV1dJc+TAYeg6ROQ== -jquery@>=1.7: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-4.0.0.tgz#95c33ac29005ff72ec444c5ba1cf457e61404fbb" - integrity sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg== - -jquery@^3.5.1: +jquery@>=1.7, jquery@^3.5.1: version "3.7.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== From a3d992a0164c82f3a55c7038e392c982fe73e21c Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sun, 18 Jan 2026 18:50:38 +0100 Subject: [PATCH 02/10] Move frontend translations to separate domain to reduce bundle size (#1197) * Initial plan * Create frontend translation files and update configuration Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com> * Fix missing semicolon in password strength controller Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com> * Remove frontend-only translations from messages domain and set frontend as default domain Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com> --- .../password_strength_estimate_controller.js | 2 +- assets/translator.js | 5 +- config/packages/ux_translator.yaml | 3 + translations/frontend.cs.xlf | 80 +++++++++++++++++++ translations/frontend.da.xlf | 80 +++++++++++++++++++ translations/frontend.de.xlf | 80 +++++++++++++++++++ translations/frontend.el.xlf | 28 +++++++ translations/frontend.en.xlf | 80 +++++++++++++++++++ translations/frontend.es.xlf | 80 +++++++++++++++++++ translations/frontend.fr.xlf | 44 ++++++++++ translations/frontend.hu.xlf | 80 +++++++++++++++++++ translations/frontend.it.xlf | 80 +++++++++++++++++++ translations/frontend.ja.xlf | 44 ++++++++++ translations/frontend.nl.xlf | 28 +++++++ translations/frontend.pl.xlf | 80 +++++++++++++++++++ translations/frontend.ru.xlf | 80 +++++++++++++++++++ translations/frontend.zh.xlf | 80 +++++++++++++++++++ translations/messages.cs.xlf | 40 ---------- translations/messages.da.xlf | 40 ---------- translations/messages.de.xlf | 40 ---------- translations/messages.en.xlf | 40 ---------- translations/messages.es.xlf | 40 ---------- translations/messages.fr.xlf | 10 --- translations/messages.hu.xlf | 40 ---------- translations/messages.it.xlf | 40 ---------- translations/messages.ja.xlf | 10 --- translations/messages.pl.xlf | 40 ---------- translations/messages.ru.xlf | 40 ---------- translations/messages.zh.xlf | 40 ---------- 29 files changed, 952 insertions(+), 422 deletions(-) create mode 100644 translations/frontend.cs.xlf create mode 100644 translations/frontend.da.xlf create mode 100644 translations/frontend.de.xlf create mode 100644 translations/frontend.el.xlf create mode 100644 translations/frontend.en.xlf create mode 100644 translations/frontend.es.xlf create mode 100644 translations/frontend.fr.xlf create mode 100644 translations/frontend.hu.xlf create mode 100644 translations/frontend.it.xlf create mode 100644 translations/frontend.ja.xlf create mode 100644 translations/frontend.nl.xlf create mode 100644 translations/frontend.pl.xlf create mode 100644 translations/frontend.ru.xlf create mode 100644 translations/frontend.zh.xlf diff --git a/assets/controllers/elements/password_strength_estimate_controller.js b/assets/controllers/elements/password_strength_estimate_controller.js index 16d18b55..d9cfbc87 100644 --- a/assets/controllers/elements/password_strength_estimate_controller.js +++ b/assets/controllers/elements/password_strength_estimate_controller.js @@ -96,7 +96,7 @@ export default class extends Controller { classes = "bg-warning badge-warning"; break; case 2: - text = trans("user.password_strength.medium") + text = trans("user.password_strength.medium"); classes = "bg-info badge-info"; break; case 3: diff --git a/assets/translator.js b/assets/translator.js index a0181a08..ad967488 100644 --- a/assets/translator.js +++ b/assets/translator.js @@ -15,4 +15,7 @@ const translator = createTranslator({ localeFallbacks, }); -export const { trans } = translator; +// Wrapper function with default domain set to 'frontend' +export const trans = (id, parameters = {}, domain = 'frontend', locale = null) => { + return translator.trans(id, parameters, domain, locale); +}; diff --git a/config/packages/ux_translator.yaml b/config/packages/ux_translator.yaml index c8453a50..46d37964 100644 --- a/config/packages/ux_translator.yaml +++ b/config/packages/ux_translator.yaml @@ -1,6 +1,9 @@ ux_translator: # The directory where the JavaScript translations are dumped dump_directory: '%kernel.project_dir%/var/translations' + # Only include the frontend translation domain in the JavaScript bundle + domains: + - 'frontend' when@prod: ux_translator: diff --git a/translations/frontend.cs.xlf b/translations/frontend.cs.xlf new file mode 100644 index 00000000..e13e5c4c --- /dev/null +++ b/translations/frontend.cs.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Hledat + + + + + part.labelp + Díly + + + + + entity.select.group.new_not_added_to_DB + Nový (zatím nebyl přidán do DB) + + + + + user.password_strength.very_weak + Velmi slabé + + + + + user.password_strength.weak + Slabé + + + + + user.password_strength.medium + Střední + + + + + user.password_strength.strong + Silné + + + + + user.password_strength.very_strong + Velmi silné + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Jdi! + + + + diff --git a/translations/frontend.da.xlf b/translations/frontend.da.xlf new file mode 100644 index 00000000..8b5570fb --- /dev/null +++ b/translations/frontend.da.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Søg + + + + + part.labelp + Komponenter + + + + + entity.select.group.new_not_added_to_DB + Ny (endnu ikke tilføjet til database) + + + + + user.password_strength.very_weak + Meget svag + + + + + user.password_strength.weak + Svag + + + + + user.password_strength.medium + Middel + + + + + user.password_strength.strong + Stærk + + + + + user.password_strength.very_strong + Meget stærk + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Kom nu! + + + + diff --git a/translations/frontend.de.xlf b/translations/frontend.de.xlf new file mode 100644 index 00000000..661ddb30 --- /dev/null +++ b/translations/frontend.de.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Suche + + + + + part.labelp + Bauteile + + + + + entity.select.group.new_not_added_to_DB + Neu (noch nicht zur DB hinzugefügt) + + + + + user.password_strength.very_weak + Sehr schwach + + + + + user.password_strength.weak + Schwach + + + + + user.password_strength.medium + Mittel + + + + + user.password_strength.strong + Stark + + + + + user.password_strength.very_strong + Sehr stark + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Los! + + + + diff --git a/translations/frontend.el.xlf b/translations/frontend.el.xlf new file mode 100644 index 00000000..6d734823 --- /dev/null +++ b/translations/frontend.el.xlf @@ -0,0 +1,28 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Αναζήτηση + + + + diff --git a/translations/frontend.en.xlf b/translations/frontend.en.xlf new file mode 100644 index 00000000..6e9fcadd --- /dev/null +++ b/translations/frontend.en.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Search + + + + + part.labelp + Parts + + + + + entity.select.group.new_not_added_to_DB + New (not added to DB yet) + + + + + user.password_strength.very_weak + Very weak + + + + + user.password_strength.weak + Weak + + + + + user.password_strength.medium + Medium + + + + + user.password_strength.strong + Strong + + + + + user.password_strength.very_strong + Very strong + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Go! + + + + diff --git a/translations/frontend.es.xlf b/translations/frontend.es.xlf new file mode 100644 index 00000000..dc96b800 --- /dev/null +++ b/translations/frontend.es.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Buscar + + + + + part.labelp + Componentes + + + + + entity.select.group.new_not_added_to_DB + Nuevo (no añadido a la base de datos) + + + + + user.password_strength.very_weak + Muy débil + + + + + user.password_strength.weak + Débil + + + + + user.password_strength.medium + Medio + + + + + user.password_strength.strong + Fuerte + + + + + user.password_strength.very_strong + Muy fuerte + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + ¡Vamos! + + + + diff --git a/translations/frontend.fr.xlf b/translations/frontend.fr.xlf new file mode 100644 index 00000000..8363fabd --- /dev/null +++ b/translations/frontend.fr.xlf @@ -0,0 +1,44 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Recherche + + + + + part.labelp + Composants + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Rechercher! + + + + diff --git a/translations/frontend.hu.xlf b/translations/frontend.hu.xlf new file mode 100644 index 00000000..c2d312bc --- /dev/null +++ b/translations/frontend.hu.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Keresés + + + + + part.labelp + Alkatrészek + + + + + entity.select.group.new_not_added_to_DB + Új (még nem hozzáadva az adatbázishoz) + + + + + user.password_strength.very_weak + Nagyon gyenge + + + + + user.password_strength.weak + Gyenge + + + + + user.password_strength.medium + Közepes + + + + + user.password_strength.strong + Erős + + + + + user.password_strength.very_strong + Nagyon erős + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Indítás! + + + + diff --git a/translations/frontend.it.xlf b/translations/frontend.it.xlf new file mode 100644 index 00000000..9df0eee0 --- /dev/null +++ b/translations/frontend.it.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Ricerca + + + + + part.labelp + Componenti + + + + + entity.select.group.new_not_added_to_DB + Nuovo (non ancora aggiunto al DB) + + + + + user.password_strength.very_weak + Molto debole + + + + + user.password_strength.weak + Debole + + + + + user.password_strength.medium + Media + + + + + user.password_strength.strong + Forte + + + + + user.password_strength.very_strong + Molto forte + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Cerca! + + + + diff --git a/translations/frontend.ja.xlf b/translations/frontend.ja.xlf new file mode 100644 index 00000000..91a60f0d --- /dev/null +++ b/translations/frontend.ja.xlf @@ -0,0 +1,44 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + 検索 + + + + + part.labelp + 部品 + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + 検索 + + + + diff --git a/translations/frontend.nl.xlf b/translations/frontend.nl.xlf new file mode 100644 index 00000000..67514891 --- /dev/null +++ b/translations/frontend.nl.xlf @@ -0,0 +1,28 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Zoeken + + + + diff --git a/translations/frontend.pl.xlf b/translations/frontend.pl.xlf new file mode 100644 index 00000000..31f59cf4 --- /dev/null +++ b/translations/frontend.pl.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Szukaj + + + + + part.labelp + Komponenty + + + + + entity.select.group.new_not_added_to_DB + Nowość (jeszcze niedodana do DB) + + + + + user.password_strength.very_weak + Bardzo słabe + + + + + user.password_strength.weak + Słabe + + + + + user.password_strength.medium + Średnie + + + + + user.password_strength.strong + Mocne + + + + + user.password_strength.very_strong + Bardzo mocne + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Idź! + + + + diff --git a/translations/frontend.ru.xlf b/translations/frontend.ru.xlf new file mode 100644 index 00000000..f63367d9 --- /dev/null +++ b/translations/frontend.ru.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + Поиск + + + + + part.labelp + Компоненты + + + + + entity.select.group.new_not_added_to_DB + Новый (еще не добавленный в БД) + + + + + user.password_strength.very_weak + Очень слабый + + + + + user.password_strength.weak + Слабый + + + + + user.password_strength.medium + Средний + + + + + user.password_strength.strong + Сильный + + + + + user.password_strength.very_strong + Очень сильный + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + Поехали! + + + + diff --git a/translations/frontend.zh.xlf b/translations/frontend.zh.xlf new file mode 100644 index 00000000..08817189 --- /dev/null +++ b/translations/frontend.zh.xlf @@ -0,0 +1,80 @@ + + + + + + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:67 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + Part-DB1\templates\AdminPages\EntityAdminBase.html.twig:19 + Part-DB1\templates\_navbar_search.html.twig:61 + Part-DB1\templates\_sidebar.html.twig:27 + Part-DB1\templates\_sidebar.html.twig:43 + Part-DB1\templates\_sidebar.html.twig:63 + templates\AdminPages\EntityAdminBase.html.twig:9 + templates\base.html.twig:80 + templates\base.html.twig:179 + templates\base.html.twig:206 + templates\base.html.twig:237 + + + search.placeholder + 搜索 + + + + + part.labelp + 部件 + + + + + entity.select.group.new_not_added_to_DB + 新建(尚未添加到数据库) + + + + + user.password_strength.very_weak + 非常弱 + + + + + user.password_strength.weak + + + + + + user.password_strength.medium + + + + + + user.password_strength.strong + + + + + + user.password_strength.very_strong + 非常强 + + + + + Part-DB1\templates\_navbar_search.html.twig:68 + Part-DB1\templates\_navbar_search.html.twig:62 + + + search.submit + GO! + + + + diff --git a/translations/messages.cs.xlf b/translations/messages.cs.xlf index 096bf247..298e1479 100644 --- a/translations/messages.cs.xlf +++ b/translations/messages.cs.xlf @@ -4025,16 +4025,6 @@ Pokud jste to provedli nesprávně nebo pokud počítač již není důvěryhodn Reg.Ex. shoda - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Jdi! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11224,36 +11214,6 @@ Element 3 Není uveden žádný textový obsah! Popisky zůstanou prázdné. - - - user.password_strength.very_weak - Velmi slabé - - - - - user.password_strength.weak - Slabé - - - - - user.password_strength.medium - Střední - - - - - user.password_strength.strong - Silné - - - - - user.password_strength.very_strong - Velmi silné - - perm.users.impersonate diff --git a/translations/messages.da.xlf b/translations/messages.da.xlf index ca536a5d..8ed10c07 100644 --- a/translations/messages.da.xlf +++ b/translations/messages.da.xlf @@ -4032,16 +4032,6 @@ Bemærk også, at uden to-faktor-godkendelse er din konto ikke længere så godt Reg. Ex. matching - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Kom nu! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11256,36 +11246,6 @@ Oversættelsen Intet tekstindhold angivet! De oprettede etiketter vil være tomme. - - - user.password_strength.very_weak - Meget svag - - - - - user.password_strength.weak - Svag - - - - - user.password_strength.medium - Middel - - - - - user.password_strength.strong - Stærk - - - - - user.password_strength.very_strong - Meget stærk - - perm.users.impersonate diff --git a/translations/messages.de.xlf b/translations/messages.de.xlf index 10c7e7a7..1930fbbe 100644 --- a/translations/messages.de.xlf +++ b/translations/messages.de.xlf @@ -4024,16 +4024,6 @@ Wenn Sie dies fehlerhafterweise gemacht haben oder ein Computer nicht mehr vertr Reg.Ex. Matching - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Los! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11304,36 +11294,6 @@ Element 1 -> Element 1.2]]> Kein Textinhalt angegeben! Die erzeugten Label werden leer sein. - - - user.password_strength.very_weak - Sehr schwach - - - - - user.password_strength.weak - Schwach - - - - - user.password_strength.medium - Mittel - - - - - user.password_strength.strong - Stark - - - - - user.password_strength.very_strong - Sehr stark - - perm.users.impersonate diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index feea210a..f7f10146 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -3959,16 +3959,6 @@ If you have done this incorrectly or if a computer is no longer trusted, you can Reg.Ex. Matching - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Go! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11153,36 +11143,6 @@ Element 1 -> Element 1.2]]> No text content given! The labels will remain empty. - - - user.password_strength.very_weak - Very weak - - - - - user.password_strength.weak - Weak - - - - - user.password_strength.medium - Medium - - - - - user.password_strength.strong - Strong - - - - - user.password_strength.very_strong - Very strong - - perm.users.impersonate diff --git a/translations/messages.es.xlf b/translations/messages.es.xlf index 8e3057ac..a7c1f906 100644 --- a/translations/messages.es.xlf +++ b/translations/messages.es.xlf @@ -4024,16 +4024,6 @@ Subelementos serán desplazados hacia arriba. Reg.Ex. Matching - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - ¡Vamos! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11242,36 +11232,6 @@ Elemento 3 ¡No se ha dado contenido de texto! Las etiquetas permanecerán vacías. - - - user.password_strength.very_weak - Muy débil - - - - - user.password_strength.weak - Débil - - - - - user.password_strength.medium - Medio - - - - - user.password_strength.strong - Fuerte - - - - - user.password_strength.very_strong - Muy fuerte - - perm.users.impersonate diff --git a/translations/messages.fr.xlf b/translations/messages.fr.xlf index 7428ca38..9492a94d 100644 --- a/translations/messages.fr.xlf +++ b/translations/messages.fr.xlf @@ -4014,16 +4014,6 @@ Si vous avez fait cela de manière incorrecte ou si un ordinateur n'est plus fia Reg.Ex. Correspondance - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Rechercher! - - Part-DB1\templates\_sidebar.html.twig:2 diff --git a/translations/messages.hu.xlf b/translations/messages.hu.xlf index c06475ea..a7a56611 100644 --- a/translations/messages.hu.xlf +++ b/translations/messages.hu.xlf @@ -3952,16 +3952,6 @@ Reguláris kifejezés egyezés - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Indítás! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11157,36 +11147,6 @@ Nincs szöveges tartalom megadva! A címkék üresek maradnak. - - - user.password_strength.very_weak - Nagyon gyenge - - - - - user.password_strength.weak - Gyenge - - - - - user.password_strength.medium - Közepes - - - - - user.password_strength.strong - Erős - - - - - user.password_strength.very_strong - Nagyon erős - - perm.users.impersonate diff --git a/translations/messages.it.xlf b/translations/messages.it.xlf index 372ca686..5de5b7e5 100644 --- a/translations/messages.it.xlf +++ b/translations/messages.it.xlf @@ -4026,16 +4026,6 @@ Se è stato fatto in modo errato o se un computer non è più attendibile, puoi Corrispondenza Reg.Ex. - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Cerca! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11244,36 +11234,6 @@ Element 3 Nessun contenuto di testo specificato! Le etichette generate saranno vuote. - - - user.password_strength.very_weak - Molto debole - - - - - user.password_strength.weak - Debole - - - - - user.password_strength.medium - Media - - - - - user.password_strength.strong - Forte - - - - - user.password_strength.very_strong - Molto forte - - perm.users.impersonate diff --git a/translations/messages.ja.xlf b/translations/messages.ja.xlf index 569c7fc9..acb0fdd9 100644 --- a/translations/messages.ja.xlf +++ b/translations/messages.ja.xlf @@ -4014,16 +4014,6 @@ 正規表現で検索 - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - 検索 - - Part-DB1\templates\_sidebar.html.twig:2 diff --git a/translations/messages.pl.xlf b/translations/messages.pl.xlf index 4fd30d6e..7409e4df 100644 --- a/translations/messages.pl.xlf +++ b/translations/messages.pl.xlf @@ -4029,16 +4029,6 @@ Jeśli zrobiłeś to niepoprawnie lub komputer nie jest już godny zaufania, mo Dopasowywanie Reg.Ex. - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Idź! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11247,36 +11237,6 @@ Element 3 Nie podano zawartości tekstowej! Etykiety pozostaną puste. - - - user.password_strength.very_weak - Bardzo słabe - - - - - user.password_strength.weak - Słabe - - - - - user.password_strength.medium - Średnie - - - - - user.password_strength.strong - Mocne - - - - - user.password_strength.very_strong - Bardzo mocne - - perm.users.impersonate diff --git a/translations/messages.ru.xlf b/translations/messages.ru.xlf index 3055fc31..c5100410 100644 --- a/translations/messages.ru.xlf +++ b/translations/messages.ru.xlf @@ -4035,16 +4035,6 @@ Соответствие рег.выраж. - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - Поехали! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11251,36 +11241,6 @@ Текстовое содержание не указано! Созданные ярлыки будут пустыми. - - - user.password_strength.very_weak - Очень слабый - - - - - user.password_strength.weak - Слабый - - - - - user.password_strength.medium - Средний - - - - - user.password_strength.strong - Сильный - - - - - user.password_strength.very_strong - Очень сильный - - perm.users.impersonate diff --git a/translations/messages.zh.xlf b/translations/messages.zh.xlf index 5e1c8538..44678eb6 100644 --- a/translations/messages.zh.xlf +++ b/translations/messages.zh.xlf @@ -4033,16 +4033,6 @@ 正则匹配 - - - Part-DB1\templates\_navbar_search.html.twig:68 - Part-DB1\templates\_navbar_search.html.twig:62 - - - search.submit - GO! - - Part-DB1\templates\_sidebar.html.twig:37 @@ -11250,36 +11240,6 @@ Element 3 没有文字内容。标签将保持为空 - - - user.password_strength.very_weak - 非常弱 - - - - - user.password_strength.weak - - - - - - user.password_strength.medium - - - - - - user.password_strength.strong - - - - - - user.password_strength.very_strong - 非常强 - - perm.users.impersonate From 86f53b2956d038ec0fdfdc0674cd75d45642dfb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 18 Jan 2026 21:58:54 +0100 Subject: [PATCH 03/10] Update Crowdin configuration file --- crowdin.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crowdin.yml b/crowdin.yml index 7465d429..f1fc011d 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -5,3 +5,5 @@ files: translation: /translations/validators.%two_letters_code%.xlf - source: /translations/security.en.xlf translation: /translations/security.%two_letters_code%.xlf + - source: /translations/frontend.en.xlf + translation: /translations/frontend.%two_letters_code%.xlf From 131023da67d5945a2f22dfa232330860405ba5d3 Mon Sep 17 00:00:00 2001 From: swdee Date: Mon, 19 Jan 2026 10:14:17 +1300 Subject: [PATCH 04/10] change barcode scan form to use requestSubmit() to fix CSRF token not being generated on submission (#1191) --- assets/controllers/pages/barcode_scan_controller.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/controllers/pages/barcode_scan_controller.js b/assets/controllers/pages/barcode_scan_controller.js index 368fef43..200dd2a7 100644 --- a/assets/controllers/pages/barcode_scan_controller.js +++ b/assets/controllers/pages/barcode_scan_controller.js @@ -70,6 +70,6 @@ export default class extends Controller { //Put our decoded Text into the input box document.getElementById('scan_dialog_input').value = decodedText; //Submit form - document.getElementById('scan_dialog_form').submit(); + document.getElementById('scan_dialog_form').requestSubmit(); } -} \ No newline at end of file +} From 09cc2ba8ffaaa8da2b376efd3f5817ac19564031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 18 Jan 2026 22:24:17 +0100 Subject: [PATCH 05/10] Use requestSubmit() in form cleanup controller to avoid CSFR issues See #1191 --- assets/controllers/helpers/form_cleanup_controller.js | 4 ++-- assets/js/webauthn_tfa.js | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/assets/controllers/helpers/form_cleanup_controller.js b/assets/controllers/helpers/form_cleanup_controller.js index 23dac950..d554371d 100644 --- a/assets/controllers/helpers/form_cleanup_controller.js +++ b/assets/controllers/helpers/form_cleanup_controller.js @@ -62,6 +62,6 @@ export default class extends Controller { element.disabled = true; } - form.submit(); + form.requestSubmit(); } -} \ No newline at end of file +} diff --git a/assets/js/webauthn_tfa.js b/assets/js/webauthn_tfa.js index 4d54efc0..440cb006 100644 --- a/assets/js/webauthn_tfa.js +++ b/assets/js/webauthn_tfa.js @@ -198,6 +198,7 @@ class WebauthnTFA { { const resultField = document.getElementById('_auth_code'); resultField.value = JSON.stringify(data) + //requestSubmit() do not work here, probably because the submit is considered invalid. But as we do not use CSFR tokens, it should be fine. form.submit(); } @@ -232,4 +233,4 @@ class WebauthnTFA { } } -window.webauthnTFA = new WebauthnTFA(); \ No newline at end of file +window.webauthnTFA = new WebauthnTFA(); From af81e15ef2bf66ebd6b90c3b0a8f310ebbd61fad Mon Sep 17 00:00:00 2001 From: Lukas Runge Date: Sun, 18 Jan 2026 22:35:37 +0100 Subject: [PATCH 06/10] Set "Excluded from sim" to false by default for new categories to avoid annoying symbol at kicad parts. --- src/Entity/EDA/EDACategoryInfo.php | 2 +- src/Services/EDA/KiCadHelper.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Entity/EDA/EDACategoryInfo.php b/src/Entity/EDA/EDACategoryInfo.php index 0163dfb3..40b3ff64 100644 --- a/src/Entity/EDA/EDACategoryInfo.php +++ b/src/Entity/EDA/EDACategoryInfo.php @@ -58,7 +58,7 @@ class EDACategoryInfo /** @var bool|null If this is set to true, then this part will be excluded in the simulation */ #[Column(type: Types::BOOLEAN, nullable: true)] #[Groups(['full', 'category:read', 'category:write', 'import'])] - private ?bool $exclude_from_sim = true; + private ?bool $exclude_from_sim = null; /** @var string|null The KiCAD schematic symbol, which should be used (the path to the library) */ #[Column(type: Types::STRING, nullable: true)] diff --git a/src/Services/EDA/KiCadHelper.php b/src/Services/EDA/KiCadHelper.php index 4b7c5e5a..3a613fe7 100644 --- a/src/Services/EDA/KiCadHelper.php +++ b/src/Services/EDA/KiCadHelper.php @@ -189,7 +189,7 @@ class KiCadHelper "symbolIdStr" => $part->getEdaInfo()->getKicadSymbol() ?? $part->getCategory()?->getEdaInfo()->getKicadSymbol() ?? "", "exclude_from_bom" => $this->boolToKicadBool($part->getEdaInfo()->getExcludeFromBom() ?? $part->getCategory()?->getEdaInfo()->getExcludeFromBom() ?? false), "exclude_from_board" => $this->boolToKicadBool($part->getEdaInfo()->getExcludeFromBoard() ?? $part->getCategory()?->getEdaInfo()->getExcludeFromBoard() ?? false), - "exclude_from_sim" => $this->boolToKicadBool($part->getEdaInfo()->getExcludeFromSim() ?? $part->getCategory()?->getEdaInfo()->getExcludeFromSim() ?? true), + "exclude_from_sim" => $this->boolToKicadBool($part->getEdaInfo()->getExcludeFromSim() ?? $part->getCategory()?->getEdaInfo()->getExcludeFromSim() ?? false), "fields" => [] ]; From dd6c20780b8696fe058220d8f69bcecc5fb53ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 18 Jan 2026 22:53:37 +0100 Subject: [PATCH 07/10] Ensure that the ids passed to DBElementRepository::findByIDInMatchingOrder are all ints This might help to diagnose #1188 --- src/Repository/DBElementRepository.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Repository/DBElementRepository.php b/src/Repository/DBElementRepository.php index 2437e848..f737d91d 100644 --- a/src/Repository/DBElementRepository.php +++ b/src/Repository/DBElementRepository.php @@ -109,6 +109,13 @@ class DBElementRepository extends EntityRepository return []; } + //Ensure that all IDs are integers and none is null + foreach ($ids as $id) { + if (!is_int($id)) { + throw new \InvalidArgumentException('Non-integer ID given to findByIDInMatchingOrder: ' . var_export($id, true)); + } + } + $cache_key = implode(',', $ids); //Check if the result is already cached From cd7dbd5f7b66a6819537b45b6b6e84357d8cfbae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 18 Jan 2026 22:59:35 +0100 Subject: [PATCH 08/10] Bumped version to 2.5.0 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 197c4d5c..437459cd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.4.0 +2.5.0 From d0b827c2c38702da67ab84ff347669d67627d134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 18 Jan 2026 23:44:11 +0100 Subject: [PATCH 09/10] Do not use the wrong language for trees when no user is logged in --- src/Services/Cache/UserCacheKeyGenerator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Services/Cache/UserCacheKeyGenerator.php b/src/Services/Cache/UserCacheKeyGenerator.php index ac5487a5..b9ff57c4 100644 --- a/src/Services/Cache/UserCacheKeyGenerator.php +++ b/src/Services/Cache/UserCacheKeyGenerator.php @@ -57,7 +57,7 @@ class UserCacheKeyGenerator //If the user is null, then treat it as anonymous user. //When the anonymous user is passed as user then use this path too. if (!($user instanceof User) || User::ID_ANONYMOUS === $user->getID()) { - return 'user$_'.User::ID_ANONYMOUS; + return 'user$_'.User::ID_ANONYMOUS . '_'.$locale; } //Use the unique user id and the locale to generate the key From 766ba07105f85ddaef56b34955a05fadc96b0ded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 18 Jan 2026 23:48:04 +0100 Subject: [PATCH 10/10] Properly disable the id search by default Follow up on PR #1184 --- templates/components/search.macro.html.twig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/components/search.macro.html.twig b/templates/components/search.macro.html.twig index a324ad35..90c01876 100644 --- a/templates/components/search.macro.html.twig +++ b/templates/components/search.macro.html.twig @@ -12,7 +12,7 @@
- +
@@ -106,4 +106,4 @@ {{ _self.settings_drodown(is_navbar) }} {% endif %} -{% endmacro %} \ No newline at end of file +{% endmacro %}