From 1cd0b459be8b3502ab06da5bb6990dcad92583ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sat, 10 Jan 2026 21:44:57 +0100 Subject: [PATCH] Fixed JS translation fox new UX/translator version --- .../elements/part_search_controller.js | 11 ++++------- .../password_strength_estimate_controller.js | 15 +++++++-------- .../structural_entity_select_controller.js | 4 ++-- assets/translator.js | 14 ++++++++------ config/packages/ux_translator.yaml | 6 ++++++ symfony.lock | 13 ++++++------- 6 files changed, 33 insertions(+), 30 deletions(-) diff --git a/assets/controllers/elements/part_search_controller.js b/assets/controllers/elements/part_search_controller.js index c33cece0..c1396900 100644 --- a/assets/controllers/elements/part_search_controller.js +++ b/assets/controllers/elements/part_search_controller.js @@ -26,9 +26,6 @@ import {marked} from "marked"; import { trans, - SEARCH_PLACEHOLDER, - SEARCH_SUBMIT, - STATISTICS_PARTS } from '../../translator'; @@ -82,9 +79,9 @@ export default class extends Controller { panelPlacement: this.element.dataset.panelPlacement, plugins: [recentSearchesPlugin], openOnFocus: true, - placeholder: trans(SEARCH_PLACEHOLDER), + placeholder: trans("search.placeholder"), translations: { - submitButtonTitle: trans(SEARCH_SUBMIT) + submitButtonTitle: trans("search.submit") }, // Use a navigator compatible with turbo: @@ -153,7 +150,7 @@ export default class extends Controller { }, templates: { header({ html }) { - return html`${trans(STATISTICS_PARTS)} + return html`${trans("part.labelp")}
`; }, item({item, components, html}) { @@ -197,4 +194,4 @@ export default class extends Controller { } } -} \ No newline at end of file +} diff --git a/assets/controllers/elements/password_strength_estimate_controller.js b/assets/controllers/elements/password_strength_estimate_controller.js index 0fc9c578..16d18b55 100644 --- a/assets/controllers/elements/password_strength_estimate_controller.js +++ b/assets/controllers/elements/password_strength_estimate_controller.js @@ -25,8 +25,7 @@ import * as zxcvbnEnPackage from '@zxcvbn-ts/language-en'; import * as zxcvbnDePackage from '@zxcvbn-ts/language-de'; import * as zxcvbnFrPackage from '@zxcvbn-ts/language-fr'; import * as zxcvbnJaPackage from '@zxcvbn-ts/language-ja'; -import {trans, USER_PASSWORD_STRENGTH_VERY_WEAK, USER_PASSWORD_STRENGTH_WEAK, USER_PASSWORD_STRENGTH_MEDIUM, - USER_PASSWORD_STRENGTH_STRONG, USER_PASSWORD_STRENGTH_VERY_STRONG} from '../../translator.js'; +import {trans} from '../../translator.js'; /* stimulusFetch: 'lazy' */ export default class extends Controller { @@ -89,23 +88,23 @@ export default class extends Controller { switch (level) { case 0: - text = trans(USER_PASSWORD_STRENGTH_VERY_WEAK); + text = trans("user.password_strength.very_weak"); classes = "bg-danger badge-danger"; break; case 1: - text = trans(USER_PASSWORD_STRENGTH_WEAK); + text = trans("user.password_strength.weak"); 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: - text = trans(USER_PASSWORD_STRENGTH_STRONG); + text = trans("user.password_strength.strong"); classes = "bg-primary badge-primary"; break; case 4: - text = trans(USER_PASSWORD_STRENGTH_VERY_STRONG); + text = trans("user.password_strength.very_strong"); classes = "bg-success badge-success"; break; default: @@ -120,4 +119,4 @@ export default class extends Controller { this.badgeTarget.classList.add("badge"); this.badgeTarget.classList.add(...classes.split(" ")); } -} \ No newline at end of file +} diff --git a/assets/controllers/elements/structural_entity_select_controller.js b/assets/controllers/elements/structural_entity_select_controller.js index 4b220d5b..2666530b 100644 --- a/assets/controllers/elements/structural_entity_select_controller.js +++ b/assets/controllers/elements/structural_entity_select_controller.js @@ -22,7 +22,7 @@ import '../../css/components/tom-select_extensions.css'; import TomSelect from "tom-select"; import {Controller} from "@hotwired/stimulus"; -import {trans, ENTITY_SELECT_GROUP_NEW_NOT_ADDED_TO_DB} from '../../translator.js' +import {trans} from '../../translator.js' import TomSelect_autoselect_typed from '../../tomselect/autoselect_typed/autoselect_typed' TomSelect.define('autoselect_typed', TomSelect_autoselect_typed) @@ -204,7 +204,7 @@ export default class extends Controller { if (data.not_in_db_yet) { //Not yet added items are shown italic and with a badge - name += "" + escape(data.text) + "" + "" + trans(ENTITY_SELECT_GROUP_NEW_NOT_ADDED_TO_DB) + ""; + name += "" + escape(data.text) + "" + "" + trans("entity.select.group.new_not_added_to_DB") + ""; } else { name += "" + escape(data.text) + ""; } diff --git a/assets/translator.js b/assets/translator.js index 0d5ae86b..a0181a08 100644 --- a/assets/translator.js +++ b/assets/translator.js @@ -1,5 +1,6 @@ -import { localeFallbacks } from '../var/translations/configuration'; -import { trans, getLocale, setLocale, setLocaleFallbacks } from '@symfony/ux-translator'; +import { createTranslator } from '@symfony/ux-translator'; +import { messages, localeFallbacks } from '../var/translations/index.js'; + /* * This file is part of the Symfony UX Translator package. * @@ -9,8 +10,9 @@ import { trans, getLocale, setLocale, setLocaleFallbacks } from '@symfony/ux-tra * If you use TypeScript, you can rename this file to "translator.ts" to take advantage of types checking. */ -setLocaleFallbacks(localeFallbacks); +const translator = createTranslator({ + messages, + localeFallbacks, +}); -export { trans }; - -export * from '../var/translations'; \ No newline at end of file +export const { trans } = translator; diff --git a/config/packages/ux_translator.yaml b/config/packages/ux_translator.yaml index 1c1c7060..c8453a50 100644 --- a/config/packages/ux_translator.yaml +++ b/config/packages/ux_translator.yaml @@ -1,3 +1,9 @@ ux_translator: # The directory where the JavaScript translations are dumped dump_directory: '%kernel.project_dir%/var/translations' + +when@prod: + ux_translator: + # Control whether TypeScript types are dumped alongside translations. + # Disable this if you do not use TypeScript (e.g. in production when using AssetMapper), to speed up cache warmup. + # dump_typescript: false diff --git a/symfony.lock b/symfony.lock index 3fce7c93..68de2da7 100644 --- a/symfony.lock +++ b/symfony.lock @@ -718,18 +718,17 @@ "files": [] }, "symfony/ux-translator": { - "version": "2.9", + "version": "2.32", "recipe": { "repo": "github.com/symfony/recipes", "branch": "main", - "version": "2.9", - "ref": "bc396565cc4cab95692dd6df810553dc22e352e1" + "version": "2.32", + "ref": "20e2abac415da4c3a9a6bafa059a6419beb74593" }, "files": [ - "./assets/translator.js", - "./config/packages/ux_translator.yaml", - "./var/translations/configuration.js", - "./var/translations/index.js" + "assets/translator.js", + "config/packages/ux_translator.yaml", + "var/translations/index.js" ] }, "symfony/ux-turbo": {