refactor: the thesaurus is called Synonyms in the UI

Both products name the tool after what it is, which says nothing to a
reader who does not know the word. Every label is "Synonyms" now — ribbon,
context menu, tools menu, dialog — and "thesaurus" stays in the tooltip so
it is still findable by name. Keys and code keep the technical name.
This commit is contained in:
Steffen Becker committed 2026-08-15 21:12:46 +02:00
1 parent ef1d9abc14
commit 0a91e573b4
6 files changed
+21 -10

No files matched your search

+1 -1
View File
@@ -1282,7 +1282,7 @@
<button class="theme-option" onclick={() => { themeOpen = false; autoTextOpen = true; }} role="menuitem">
<span>{t().autoText.title}</span>
</button>
<button class="theme-option" onclick={() => { themeOpen = false; thesaurusOpen = true; }} role="menuitem">
<button class="theme-option" onclick={() => { themeOpen = false; thesaurusOpen = true; }} role="menuitem" title={t().thesaurus.hint}>
<span>{t().thesaurus.title}</span>
<span class="theme-option-hint">{shortcutHint('thesaurus')}</span>
</button>
+6 -1
View File
@@ -151,13 +151,18 @@ Text group, the classic chrome's Tools menu): the library, a click to insert, an
from selection" — the selected slice serialized to HTML. `hasSelection` is derived off
`open` because the dialog stays mounted and a modal freezes the selection it opened on.
## Thesaurus (`ThesaurusDialog.svelte`, `spell/thesaurus.ts`)
## Synonyms (`ThesaurusDialog.svelte`, `spell/thesaurus.ts`)
LibreOffice's Tools ▸ Thesaurus (Ctrl+F7), reachable where Word puts it too (the ribbon's
Review ▸ Proofing) and from the context menu: the word at the caret (`wordRangeAt`), the
groups it appears in, click one to replace it. The box above looks up any other word,
which is how both dialogs follow a chain.
**Named "Synonyms", not "Thesaurus"** — the one place the label deviates from both
products. The word of art names the tool without saying what it does; it stays in the
tooltip (`thesaurus.hint`) so anyone looking for it still finds it. The i18n keys and
the code keep the technical name.
- The data is `public/thesaurus/<code>/<code>.txt`, one `;`-separated group per line,
generated from LibreOffice's own MyThes files by `scripts/make-thesaurus.mjs` — de 3.0MB
/ 37k groups, en 6.7MB / 143k groups. MyThes repeats every group once per member, ten
@@ -53,7 +53,7 @@
variant="big"
icon="thesaurus"
label={t().thesaurus.title}
title={`${t().thesaurus.title} (${shortcutHint('thesaurus')})`}
title={`${t().thesaurus.hint} — ${shortcutHint('thesaurus')}`}
onclick={() => window.dispatchEvent(new CustomEvent(OPEN_THESAURUS_EVENT))}
/>
<div class="rb-menu-wrap" use:clickOutside={'wordCount'}>
+6 -3
View File
@@ -485,10 +485,13 @@ const de: Messages = {
ignoreAll: 'Alle ignorieren',
},
thesaurus: {
title: 'Thesaurus',
menuItem: 'Thesaurus…',
// "Thesaurus" heißt das Werkzeug in beiden Programmen, sagt aber nicht, was es tut:
// sichtbar ist überall "Synonyme", der Fachbegriff steht im Tooltip.
title: 'Synonyme',
menuItem: 'Synonyme…',
hint: 'Ein anderes Wort mit gleicher Bedeutung finden (Thesaurus)',
lookUp: 'Nachschlagen',
word: 'Wort',
word: 'Wort eingeben…',
loading: 'Wird geladen…',
replaceHint: 'Ein Wort anklicken, um es im Dokument zu ersetzen.',
noSynonyms: 'Keine Synonyme gefunden',
+6 -3
View File
@@ -489,10 +489,13 @@ const en = {
ignoreAll: 'Ignore All',
},
thesaurus: {
title: 'Thesaurus',
menuItem: 'Thesaurus…',
// Both products call the tool "Thesaurus", which does not say what it does: the
// label everywhere is "Synonyms", the term of art lives in the tooltip.
title: 'Synonyms',
menuItem: 'Synonyms…',
hint: 'Find another word with the same meaning (thesaurus)',
lookUp: 'Look up',
word: 'Word',
word: 'Enter a word…',
loading: 'Loading…',
replaceHint: 'Click a word to replace the one in the document.',
noSynonyms: 'No synonyms found',