From 08bd95ba208474e5e6c38105afd95d6744daf9bb Mon Sep 17 00:00:00 2001 From: Zuzanna Ludzik Date: Fri, 12 Jun 2026 13:45:48 +0200 Subject: [PATCH 1/5] onlyoffice apps load en-us spellcheck for english language users --- www/common/onlyoffice/inner.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 3711c587b..55e88fabb 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -2129,12 +2129,11 @@ define([ }); } - if (APP.startNew) { - var w = getWindow(); - if (lang === "fr") { lang = 'fr-fr'; } - var l = w.Common.util.LanguageInfo.getLocalLanguageCode(lang); - getEditor().asc_setDefaultLanguage(l); - } + var w = getWindow(); + if (lang === "en") { lang = "en-us"; } + if (lang === "fr") { lang = 'fr-fr'; } + var l = w.Common.util.LanguageInfo.getLocalLanguageCode(lang); + getEditor().asc_setDefaultLanguage(l); } if (integrationChannel) { integrationChannel.event('EV_INTEGRATION_READY'); From ec25432349ef802bd671a47219a898fd9125bb1e Mon Sep 17 00:00:00 2001 From: Zuzanna Ludzik Date: Mon, 15 Jun 2026 16:43:55 +0200 Subject: [PATCH 2/5] spellcheck language doesn't switch for multilanguage collaborators --- www/common/onlyoffice/inner.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 55e88fabb..207cc0028 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -2129,11 +2129,26 @@ define([ }); } - var w = getWindow(); - if (lang === "en") { lang = "en-us"; } - if (lang === "fr") { lang = 'fr-fr'; } - var l = w.Common.util.LanguageInfo.getLocalLanguageCode(lang); - getEditor().asc_setDefaultLanguage(l); + var defaultLanguageCode = String(getEditor().asc_getDefaultLanguage()); + + const langToLocale = { + "en" : "en-us", + "fr" : "fr-fr", + "es" : "es-es", + "de" : "de-de" + }; + + if (APP.startNew) { + var w = getWindow(); + if (Object.keys(langToLocale).includes(lang)) { + lang = langToLocale[lang]; + } + var l = w.Common.util.LanguageInfo.getLocalLanguageCode(lang); + getEditor().asc_setDefaultLanguage(l); + + } else { + getEditor().asc_setDefaultLanguage(defaultLanguageCode); + } } if (integrationChannel) { integrationChannel.event('EV_INTEGRATION_READY'); From 9402be141df6abcab7781ff919be1eefdc78f083 Mon Sep 17 00:00:00 2001 From: Zuzanna Ludzik Date: Thu, 9 Jul 2026 12:43:16 +0200 Subject: [PATCH 3/5] spellcheck set correctly in new docs + shared docs in other langs --- www/common/onlyoffice/inner.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 207cc0028..483477df9 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -2129,7 +2129,8 @@ define([ }); } - var defaultLanguageCode = String(getEditor().asc_getDefaultLanguage()); + //Ensure spellcheck set correctly (works only with localized language variants) + var defaultLanguageCode = getEditor().asc_getDefaultLanguage(); const langToLocale = { "en" : "en-us", @@ -2138,8 +2139,21 @@ define([ "de" : "de-de" }; + const langCodeToLocale = { + 7: "de-de", + 9: "en-us", + 10: "es-es", + 12: "fr-fr" + }; + + const localeToLCID = Object.fromEntries( + Object.values(window.frames[0].AscCommon.g_aCultureInfos) + .map(info => [info.Name.toLowerCase(), info.LCID]) + ); + if (APP.startNew) { var w = getWindow(); + //If default language variant is generic - localize it if (Object.keys(langToLocale).includes(lang)) { lang = langToLocale[lang]; } @@ -2147,6 +2161,13 @@ define([ getEditor().asc_setDefaultLanguage(l); } else { + //Setting the language every time document loads prevents spellcheck from 'switching off' + var localeLang = langCodeToLocale[defaultLanguageCode]; + + //If default language variant is generic - localize it + if (defaultLanguageCode < 1000 && localeLang) { + defaultLanguageCode = localeToLCID[localeLang]; + } getEditor().asc_setDefaultLanguage(defaultLanguageCode); } } @@ -2246,7 +2267,6 @@ define([ let integrationConfig = privateData?.integrationConfig?._; //let ec = integrationConfig?.editorConfig; let dc = integrationConfig?.document; - const ooconfig = { document: { fileType: file.type, @@ -2316,7 +2336,6 @@ define([ //var mode = (content && content.version > 2 && lock) ? "view" : "edit"; const lang = (window.cryptpadLanguage || navigator.language || navigator.userLanguage || '').slice(0,2); - // Config APP.ooconfig = createOOConfig(blob, file, lock, fromContent, lang, force); /* From 18d16906623a9e9e6de1639c2f67db9bf5b21efa Mon Sep 17 00:00:00 2001 From: Zuzanna Ludzik Date: Thu, 9 Jul 2026 12:46:21 +0200 Subject: [PATCH 4/5] cleaning --- www/common/onlyoffice/inner.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 483477df9..0a76cfb77 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -2267,6 +2267,7 @@ define([ let integrationConfig = privateData?.integrationConfig?._; //let ec = integrationConfig?.editorConfig; let dc = integrationConfig?.document; + const ooconfig = { document: { fileType: file.type, @@ -2336,6 +2337,7 @@ define([ //var mode = (content && content.version > 2 && lock) ? "view" : "edit"; const lang = (window.cryptpadLanguage || navigator.language || navigator.userLanguage || '').slice(0,2); + // Config APP.ooconfig = createOOConfig(blob, file, lock, fromContent, lang, force); /* From 180127c08f3ed5338a28af60e9e78aad5047870a Mon Sep 17 00:00:00 2001 From: Zuzanna Ludzik Date: Thu, 13 Aug 2026 21:14:54 +0200 Subject: [PATCH 5/5] disable spellcheck code for sheets --- www/common/onlyoffice/inner.js | 73 ++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 34 deletions(-) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 0a76cfb77..d48b09047 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -2130,46 +2130,51 @@ define([ } //Ensure spellcheck set correctly (works only with localized language variants) - var defaultLanguageCode = getEditor().asc_getDefaultLanguage(); + var editor = getEditor(); + if (typeof editor.asc_getDefaultLanguage === 'function' && typeof editor.asc_setDefaultLanguage === 'function') { - const langToLocale = { - "en" : "en-us", - "fr" : "fr-fr", - "es" : "es-es", - "de" : "de-de" - }; + var defaultLanguageCode = editor.asc_getDefaultLanguage(); - const langCodeToLocale = { - 7: "de-de", - 9: "en-us", - 10: "es-es", - 12: "fr-fr" - }; + const langToLocale = { + "en" : "en-us", + "fr" : "fr-fr", + "es" : "es-es", + "de" : "de-de" + }; - const localeToLCID = Object.fromEntries( - Object.values(window.frames[0].AscCommon.g_aCultureInfos) - .map(info => [info.Name.toLowerCase(), info.LCID]) - ); + const langCodeToLocale = { + 7: "de-de", + 9: "en-us", + 10: "es-es", + 12: "fr-fr" + }; - if (APP.startNew) { - var w = getWindow(); - //If default language variant is generic - localize it - if (Object.keys(langToLocale).includes(lang)) { - lang = langToLocale[lang]; + const localeToLCID = Object.fromEntries( + Object.values(window.frames[0].AscCommon.g_aCultureInfos) + .map(info => [info.Name.toLowerCase(), info.LCID]) + ); + + if (APP.startNew) { + var w = getWindow(); + //If default language variant is generic - localize it + if (Object.keys(langToLocale).includes(lang)) { + lang = langToLocale[lang]; + } + var l = w.Common.util.LanguageInfo.getLocalLanguageCode(lang); + editor.asc_setDefaultLanguage(l); + + } else { + //Setting the language every time document loads prevents spellcheck from 'switching off' + var localeLang = langCodeToLocale[defaultLanguageCode]; + + //If default language variant is generic - localize it + if (defaultLanguageCode < 1000 && localeLang) { + defaultLanguageCode = localeToLCID[localeLang]; + } + editor.asc_setDefaultLanguage(defaultLanguageCode); } - var l = w.Common.util.LanguageInfo.getLocalLanguageCode(lang); - getEditor().asc_setDefaultLanguage(l); - - } else { - //Setting the language every time document loads prevents spellcheck from 'switching off' - var localeLang = langCodeToLocale[defaultLanguageCode]; - - //If default language variant is generic - localize it - if (defaultLanguageCode < 1000 && localeLang) { - defaultLanguageCode = localeToLCID[localeLang]; - } - getEditor().asc_setDefaultLanguage(defaultLanguageCode); } + } if (integrationChannel) { integrationChannel.event('EV_INTEGRATION_READY');