From e06d9da186ecb4178669029090759010bb1ee204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Fri, 17 Oct 2025 18:15:04 +0200 Subject: [PATCH] Load translations for CKEDITOR if language is not english --- .../elements/ckeditor_controller.js | 26 +++++++++++++++++++ templates/base.html.twig | 6 ----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/assets/controllers/elements/ckeditor_controller.js b/assets/controllers/elements/ckeditor_controller.js index 62a48b15..5612ca05 100644 --- a/assets/controllers/elements/ckeditor_controller.js +++ b/assets/controllers/elements/ckeditor_controller.js @@ -28,6 +28,26 @@ import {EditorWatchdog} from 'ckeditor5'; import "ckeditor5/ckeditor5.css";; import "../../css/components/ckeditor.css"; +const translationContext = require.context( + 'ckeditor5/translations', + false, + /\.js$/ +); + +function loadTranslation(language) { + if (!language || language === 'en') { + return null; + } + const lang = language.slice(0, 2); + const path = `./${lang}.js`; + if (translationContext.keys().includes(path)) { + const module = translationContext(path); + return module.default; + } else { + return null; + } +} + /* stimulusFetch: 'lazy' */ export default class extends Controller { connect() { @@ -63,6 +83,12 @@ export default class extends Controller { } } + //Load translations if not english + let translations = loadTranslation(language); + if (translations) { + config.translations = [translations]; + } + const watchdog = new EditorWatchdog(); watchdog.setCreator((elementOrData, editorConfig) => { return EDITOR_TYPE.create(elementOrData, editorConfig) diff --git a/templates/base.html.twig b/templates/base.html.twig index ee79549b..58cccec5 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -66,12 +66,6 @@ {% block javascripts %} {{ encore_entry_script_tags('app') }} {{ encore_entry_script_tags('webauthn_tfa') }} - - {# load translation files for ckeditor #} - {% set two_chars_locale = app.request.locale|default("en")|slice(0,2) %} - {% if two_chars_locale != "en" %} - - {% endif %} {% endblock %}