From 42d3334c9dfd5ae8d5fe5ca3fb735ca912543706 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 4 Mar 2025 19:29:02 +0200 Subject: [PATCH] feat(note_language): initialize CKEditor with right language --- src/public/app/widgets/note_detail.ts | 3 +++ .../app/widgets/type_widgets/editable_text.js | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/public/app/widgets/note_detail.ts b/src/public/app/widgets/note_detail.ts index a16de3ece..9995d2197 100644 --- a/src/public/app/widgets/note_detail.ts +++ b/src/public/app/widgets/note_detail.ts @@ -148,6 +148,9 @@ export default class NoteDetailWidget extends NoteContextAwareWidget { typeWidget.spacedUpdate = this.spacedUpdate; typeWidget.setParent(this); + if (this.noteContext) { + typeWidget.setNoteContextEvent({ noteContext: this.noteContext }); + } const $renderedWidget = typeWidget.render(); keyboardActionsService.updateDisplayedShortcuts($renderedWidget); diff --git a/src/public/app/widgets/type_widgets/editable_text.js b/src/public/app/widgets/type_widgets/editable_text.js index c5f2df34b..ff0e14921 100644 --- a/src/public/app/widgets/type_widgets/editable_text.js +++ b/src/public/app/widgets/type_widgets/editable_text.js @@ -185,7 +185,7 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget { this.watchdog.setCreator(async (elementOrData, editorConfig) => { logInfo("Creating new CKEditor"); - const editor = await editorClass.create(elementOrData, { + const finalConfig = { ...editorConfig, ...buildConfig(), ...buildToolbarConfig(isClassicEditor), @@ -195,7 +195,17 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget { classes: true, attributes: true } - }); + }; + + const contentLanguage = this.note.getLabelValue("language"); + if (contentLanguage) { + finalConfig.language = { + ui: (typeof finalConfig.language === "string" ? finalConfig.language : "en"), + content: contentLanguage + } + } + + const editor = await editorClass.create(elementOrData, finalConfig); const notificationsPlugin = editor.plugins.get("Notification"); notificationsPlugin.on("show:warning", (evt, data) => {