Collabore online cannot use danish spelling

It is not possible from Collabora Online to chose Danish as the spelling language in a document loaded from Nextcloud. This a major issue as multiple organizations thru out Europe are investigating ways to leave the US based Office services. Recently a journalist from the weekly paper Ingenøren, targeting Engineers, who in a feature tried to break loose from the US tech companies complained that she could not get Danish spell checking in Collabora Online. She is running a feature to investigate what it takes to leave the US based Office and cloud services. Likewise has a journalist from the danish online media Zetland tried the same with the same result. Both journalists regarded this as a major obstacle to migrate away from their current setup.

My investigation supports this:

The computer:

Raspberry Pi 5 Model B Rev 1.0, 8 GB memory.

Operating System: Debian GNU/Linux 13 (trixie)

Kernel: Linux 6.12.62+rpt-rpi-2712 – Lite - No graphical User Interface and no containers.

Nextcloud config:

## Server configuration detail

**Operating system:** Linux 6.12.62+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.62-1+rpt1 (2025-12-18) aarch64

**Webserver:** nginx/1.26.3 (fpm-fcgi)

**Database:** mysql 11.8.6

**PHP version:** 8.4.16

Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, random, Reflection, SPL, session, standard, sodium, cgi-fcgi, mysqlnd, PDO, xml, apcu, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, intl, exif, memcache, msgpack, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, redis, Zend OPcache

**Nextcloud version:** 32.0.6 - 32.0.6.1

**Updated from an older ownCloud :**

List of activated apps

```

Enabled:

- activity: 5.0.0

- bruteforcesettings: 5.0.0

- calendar: 6.2.1

- circles: 32.0.0

- comments: 1.22.0

- contacts: 8.3.4

- contactsinteraction: 1.13.1

- cookbook: 0.11.6

- dashboard: 7.12.0

- federation: 1.22.0

- files_downloadlimit: 5.0.0-dev.0

- files_external: 1.24.1

- files_pdfviewer: 5.0.0

- files_reminders: 1.5.0

- files_sharing: 1.24.1

- files_trashbin: 1.22.0

- files_versions: 1.25.0

- firstrunwizard: 5.0.0

- logreader: 5.0.0

- nextcloud_announcements: 4.0.0

- notifications: 5.0.0

- password_policy: 4.0.0

- passwords: 2026.2.20

- photos: 5.0.0

- privacy: 4.0.0

- recommendations: 5.0.0

- related_resources: 3.0.0

- richdocuments: 9.0.3

- serverinfo: 4.0.0

- sharebymail: 1.22.0

- spreed: 22.0.9

- support: 4.0.0

- survey_client: 4.0.0

- text: 6.0.1

- updatenotification: 1.22.0

- user_status: 1.12.0

- weather_status: 1.12.0

- webhook_listeners: 1.3.0

Disabled:

- admin_audit

- app_api: 32.0.0

- encryption

- richdocumentscode_arm64: 25.4.902

- suspicious_login

- systemtags: 1.22.0

- twofactor_nextcloud_notification

- twofactor_totp

- user_ldap

```

Configuration (config/config.php)

```

{

“passwordsalt”: “***REMOVED SENSITIVE VALUE***”,

“secret”: “***REMOVED SENSITIVE VALUE***”,

“trusted_domains”: [

“MYDOMAIN.dk”,

“www.MYDOMAIN.dk”,

“collabora.MYDOMAIN.dk”

],

“datadirectory”: “***REMOVED SENSITIVE VALUE***”,

“default_language”: “da”,

“default_locale”: “da_DK”,

“dbtype”: “mysql”,

“version”: “32.0.6.1”,

“memcache.local”: “\\OC\\Memcache\\APCu”,

“filelocking.enabled”: true,

“memcache.locking”: “\\OC\\Memcache\\Redis”,

“redis”: {

“host”: “***REMOVED SENSITIVE VALUE***”,

“port”: 6379,

“timeout”: 0,

“password”: “***REMOVED SENSITIVE VALUE***”

},

“overwrite.cli.url”: “https:\/\/MYDOMAIN.dk”,

“overwritehost”: “MYDOMAIN.dk”,

“overwriteprotocol”: “https”,

“dbname”: “***REMOVED SENSITIVE VALUE***”,

“dbhost”: “***REMOVED SENSITIVE VALUE***”,

“dbport”: “”,

“dbtableprefix”: “oc_”,

“mysql.utf8mb4”: true,

“installed”: true,

“default_phone_region”: “DK”,

“forcessl”: true,

“maintenance_window_start”: 2,

“instanceid”: “***REMOVED SENSITIVE VALUE***”,

“maintenance”: false,

“log_type”: “file”,

“loglevel”: 2,

“logfile”: “\/var\/log\/nextcloud.log”,

“logtimezone”: “Europe\/Berlin”,

“updatechecker”: true,

“mail_smtpmode”: “smtp”,

“mail_smtpsecure”: “ssl”,

“mail_sendmailmode”: “smtp”,

“mail_from_address”: “***REMOVED SENSITIVE VALUE***”,

“mail_domain”: “***REMOVED SENSITIVE VALUE***”,

“mail_smtphost”: “***REMOVED SENSITIVE VALUE***”,

“mail_smtpport”: “465”,

“mail_smtpauth”: 1,

“mail_smtpname”: “***REMOVED SENSITIVE VALUE***”,

“mail_smtppassword”: “***REMOVED SENSITIVE VALUE***”,

“dbuser”: “***REMOVED SENSITIVE VALUE***”,

“dbpassword”: “***REMOVED SENSITIVE VALUE***”

}

```

**Cron Configuration:**

Mode: cron

Last: 2026-03-10T15:10:02+00:00 (151 seconds ago)

**External storages:** yes

External storage configuration

```

No mounts configured

```

**Encryption:** no

**User-backends:**

* OC\User\Database

**Subscription:**

* No valid subscription key set

**Richdocuments config:**

occ config:list richdocuments

{

“apps”: {

“richdocuments”: {

“disable_certificate_verification”: “”,

“doc_format”: “ooxml”,

“enabled”: “yes”,

“installed_version”: “9.0.3”,

“public_wopi_url”: “https:\/\/MYDOMAIN.dk”,

“types”: “filesystem,prevent_group_restriction”,

“wopi_allowlist”: “127.0.0.1\/8,XX.YY.ZZ.130\/21”,

“wopi_callback_url”: “https:\/\/MYDOMAIN.dk”,

“wopi_url”: “https:\/\/MYDOMAIN.dk\/apps\/richdocumentscode_arm64\/proxy.php?req=”

}

}

}

**Browser:** Mozilla/5.0 (X11; Linux x86_64; rv:148.0) Gecko/20100101 Firefox/148.0

Collabora Online is installed on the same server and reachable from Nextcloud.

Collabora installed modules:

collaboraoffice-dict-da/unknown,now 25.04.9-2 arm64 [installed]

collaboraoffice-ure/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraoffice/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-calc/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-core/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-da/unknown,now 25.04.9-2 arm64 [installed]

collaboraofficebasis-draw/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-en-us/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-extension-pdf-import/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-graphicfilter/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-images/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-impress/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-math/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-ooofonts/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-ooolinguistic/unknown,now 25.04.9-2 arm64 [installed,automatic]

collaboraofficebasis-writer/unknown,now 25.04.9-2 arm64 [installed,automatic]

coolwsd/unknown,now 25.04.9.2-1 arm64 [installed]

Note that the danish dictionary (collaboraoffice-dict-da) is installed and is recognized in the startup of collabora: Here is an extract from the journal log of coolwsd startup:

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preload textencodings

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Allowlisted languages: da_DK de_DE en_GB en_US es_ES fr_FR

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preloading local dictionaries: da-DK

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preloading local thesauri: da-DK

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preloading local hyphenators: da-DK

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preloading breakiterator

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preload icons

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preload short cut accelerators

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preload languages

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preload fonts

Mar 03 23:02:16 RaPi5Trix coolwsd[31562]: Preload config

Note that the default allowed languages for Italian, Dutch, Portuguese and Russian has been removed and Danish has been added in the coolwsd.xml definitions:

<allowed_languages desc=“List of supported languages of Writing Aids (spell checker, grammar checker, thesaurus, hyphenation) on this instance. Allowing too many has negative effect on startup performance.” default=“de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru”>da_DK de_DE en_GB en_US es_ES fr_FR</allowed_languages>

When you open a document in Danish it all looks right. The UI is in Danish and the language setting for the document indicated on the bottom line says Dansk which means Danish in Danish. But the spelling control for Danish is not active as you can see from the last word in paragraph 1 which is not a valid word in Danish or any other language as far as I know.

Here I am hammered by a restriction that says “New users are only allowed to add 1 screenshot to a report” or something.

Ok here is a link to the full report.

hello @TDY welcome to collabora online forum

Nice to see so detailed report thanks for that :slight_smile:

I think Nextcloud isn’t actually using the coolwsd you configured. Look at your richdocuments settings:

"wopi_url": "https://MYDOMAIN.dk/apps/richdocumentscode_arm64/proxy.php?req="

That points to the built-in CODE app bundled inside Nextcloud — it has its own LibreOffice core, its own coolwsd.xml, and ships without the Danish dictionary. Your system coolwsd (with collaboraoffice-dict-da and Danish in allowed_languages) is a separate install that’s never being called. The journal log shows Danish loading fine — for a process that never renders your document.

Quick check

find /var/www -path '*richdocumentscode_arm64*' \ \( -name '*.dic' -o -name '*.aff' \) 2>/dev/null

If you see en_US, de_DE etc. but no da_DK — that’s the cause.

Fix

Disable/uninstall the richdocumentscode_arm64 app in Nextcloud, put your system coolwsd behind a TLS reverse proxy (e.g. https://office.MYDOMAIN.dk127.0.0.1:9980), then in Nextcloud → Administration → Office choose “Use your own server” and enter that URL.

Once Nextcloud talks to the real coolwsd, your allowed_languages and the installed Danish dictionary actually get used — and spellcheck lights up.

Thanks
Darshan

The built-in collabora office app is not activated.

I am using the installed coolwsd as you can se from above.

Aahh, you were right. I removed the builtin CODE and changed the URL and now it works.

Thanks so much.

1 Like

@TDY good to know it solved :slight_smile: