macOS’s dictionary is a text file, and can be found at:
~/Library/Spelling/LocalDictionary
macOS’s dictionary is a text file, and can be found at:
~/Library/Spelling/LocalDictionary
Yes, you could even add words to that file with a simple text editor (though you might need to restart programs to see those changes take effect). But outside of cases like adding hundreds of words at a time, in most cases, I think the above described approach of using the spell check window will be easiest to work with, and does not suffer the oddities with inline markings that we’ve been seeing in more recent versions of macOS.
Hopefully this next update clears things up, but I worry that them adding even more complexity on top of the text editor isn’t going to help (the LLM stuff).
When there’s a word or spelling that I want to add to the dictionary, I used to be able to right click the word and choose “learn.” And while that does happen occasionally still, most of the time I get a menu that doesn’t include the option. Instead I have to scroll down to spelling and start the spelling/grammar engine, open it, and choose from the popup.
Why has this behavior changed, and is there a way to get back to the old behavior? I’d like “learn” to be available always when I right click a word.
I’ve been using Scrivener for over a decade and I continue to have an odd problem. There are certain words that are not in my Scrivener dictionary, and are highlighted as misspelled, but when I right-click to add or ignore the spelling, the menu doesn’t give me an option to do either.
This has continued to happen more and more over the years, and it seems to be happening at random. My version of scrivener is completely updated, so I don’t understand what is preventing me from making this simple update.
TIA!
Mac Scrivener depends on Mac OS for spellchecking. The first thing to check would be to see if you can add the word(s) from TextEdit.
It seems that Scrivener will not accept learned words with apostrophe’s as correct, as in T’chck. It will offer to learn them and add it to the dictionary, but will still consider the word as spelled wrong. The added words are handled fine by TextEdit, and the word is contained in the Apple dictionary as well.
The new location for the dictionary is:
~/Library/Group Containers/group.com.apple.AppleSpell/Library/Spelling/LocalDictionary
I haven’t been able to find a workaround for this.
Secondly (and weirdly), Scrivener seems to have a memory of words that were learned at one point but aren’t anymore. That is, the word will be underlined but the contextual menu will offer to “unlearn.” This does nothing except change the modification date of the above LocalDictionary file (which hadn’t contained the word in the first place). After this, Scrivener will still underline the word but not offer to learn or ignore.
The remembered words aren’t in the old LocalDictionary files that were in ~/Library/Spelling either.
I discovered this by opening a file I hadn’t looked at in a few years, or on this computer at all.
I can get around this by editing the LocalDictionary file directly or telling TextEdit to add it to the dictionary, at which point Scrivener will accept the word again.
Retype the words with an apostrophe in Synopsis and let it learn the word there.
Synopsis is plain text, whereas the rest of Scrivener is RTF.
In Synopsis, you need to highlight the whole word to add it to a customised dictionary, else it ignores your effort.
Indeed, in synopsis Scrivener see’s the words as correct without doing anything. The words in question are already in the system’s LocalDictionary file. Doesn’t help with regular writing, unfortunately.
Do you use smart quotes or straight quotes in the Editor? With smart quotes, the apostrophe is actually a different glyph, and it’s possible that’s confusing the spellchecker. (Which, to be clear, would be a bug, but at least you’d have an explanation.)
Okay. It’s how we fix it in Windows, not in Mac it seems.
That was it, thank you! Apple spellcheck automatically converts the smart quotes to plain quotes when it stores it in the LocalDictionary. Learning a word in TextEdit does the same thing.
However, if I insert the word with the smart single quote into the LocalDictionary file directly, Scrivener accepts the word happily.
What should happen – but apparently doesn’t – is that the spellcheck engine should convert to straight quotes before checking the word.
Something I am experiencing is misspelt words that, through the spelling and grammar correction window, I accidentally selected “learn” that now come up as options within that window as correct spellings that I cannot seem to unlearn. These words are not in my mac library.
If everything is working correctly, you should be able to right-click on the word that is incorrectly not marked as an error, and you will find an “Unlearn” command at the very top of the contextual menu.
Otherwise, you might need to look around a bit for where the spelling file really is. Apple keeps moving it around, from one year to the next it seems. This year for me it seems to be in ~/Library/Group Containers/group.com.apple.AppleSpell/Library/Spelling/LocalDictionary. Before it was in the much easier to find ~/Library/Spelling/LocalDictionary. Before that it was in ~/Library/Spelling/en_GB (or whatever localisation is applicable). Before that it was somewhere else I think. So it depends on what version of macOS you are using.
Here is how I can verify results (on macOS 15.2):
Open Scrivener and Terminal together.
In Scrivener, type “asdfhalsd” into the text editor and let it mark it as incorrect.
Right-click and learn it.
In Terminal, type:
cd ~/Library/Group\ Containers/group.com.apple.AppleSpell/Library/Spelling
cat LocalDictionary
This prints the file to the terminal, and we can find the test phrase within it.
Back in Scrivener, right-click on the word and unlearn it.
In Terminal, use the second ‘cat’ command again.
The test phrase is no longer present.
If that file does not exist, or you do not see anything in it, then you could try:
cd ~/Library
grep -R 'asdfhalsd' Spelling/*
grep -R 'asdfhalsd' Group\ Containers/*
No need to run the second one if the first finds something (prints the phrase in response). The second command may take some seconds to complete, but if it finds it, you’ll see the full path to a file name followed by the phrase, like so:
Group Containers/group.com.apple.AppleSpell/Library/Spelling/LocalDictionary:asdfhalsd
(You will need to read closely, as you will no doubt hit a bunch of “permission denied” errors, There are, evidently, areas of your own personal user configuration folder that you aren’t allowed to even look at. )
And now you know where to look in the future.
Thank you for the response.
I think poorly described my issue, as the fix you describe doesn’t speak to the issue.
I already know how and where to access my mac’s dictionary, and it turns our that some learned words are in there, and some are not.
It seems to depend on whether they were learned through a right-click on that word (which unlearn would work here, and that word would be in the mac main dictionary); or if they were learned through the Spelling and Grammar pop-up window within Scrivener.
If I do the latter, it will be shown as a list of possible “correct” spellings of close words in the Spelling and Grammar window. However, it will not be able to be unlearned through right click (on the word in the main text field or by right-clicking on it in the S&G pop up window) and it will not be present in the mac dictionary.
It’s possible they are being somehow registered into an application-specific dictionary of a different application, but through scrivener. However, I don’t know how to find out which one other than checking each one individually, which I definitely don’t want to do.
No worries, you explained it well, I just did not distinguish between methods because in my experience that has never mattered.
Currently, I do not see the same results on my system. If I use the spell check window to learn a word, it lands in the same exact file as the right-click menu uses, immediately. I can then right-click in the text editor and “unlearn” it. The only oddity I noticed is that the cosmetic marking itself doesn’t immediately go away in the text editor when using the spell check window, but it did eventually after some typing. Even if with marked as incorrect, the Unlearn option was still available (and functional).
So unfortunately I can’t really explain what is happening on your system. It might be a localisation thing, and the grep
commands I posted above might help you find the words in different files. I haven’t tested it, but I wonder if maybe with the language set to “automatic”, in that window, if it uses separate files for paragraphs it detects as different languages. That would certainly make sense.
Again, as far as I’m aware, there is no such thing as program-specific spell check files. It wouldn’t be impossible for them to implement things that way in the future, but it would be surprising if they did, as it would mean having to mark a particular common word okay (like your name), over and over in each context you might use it.
One other thing worth checking is whether you are using a third-party spell checking tool. Some, like ProWritingAid and Grammarly, can offer extended services in other programs, and may use different systems for storing corrections.
The learn function was not working on a right-click, but you can “learn” a word through opening the Edit->Spelling and Grammar->Show Spelling and Grammar. I am using Mac, Scrivener 3, Ventura 13.
Yes, the “learn spelling” function seems to have disappeared from Scrivener (current versions of everything). Is this a bug or a “some-day-you’ll-thank-me” lesson to make us learn how to spell?
Tried right-click; tried Edit>Spelling and grammar. Am I missing something?
There isn’t much anyone can do about it, as noted here, but this is the right thread to look for tips in (though I’ll save you the time, if the dialogue box isn’t working for you either, I don’t know of anything that can work, though my last message with some further tips and suggestions was never followed up on, so maybe there is something in there you could try).
Here’s how Grammarly deals with spelling on Scrivener (for Windows).
If you allow Scrivener to do the correction, Grammarly goes away, deferring to Scrivener, as it were, i.e. it stops all checking. You then have to click into something like Notes or any other text window and Grammarly becomes active again during the session. I think it’s pretty neat and non-intrusive.