Open Bug 338291 Opened 14 years ago Updated 9 months ago

Words added to the personal dictionary are not suggested for misspelled words

Categories

(Core :: Spelling checker, defect, P2)

x86
All
defect

Tracking

()

Tracking Status
blocking2.0 --- -

People

(Reporter: u88484, Unassigned)

References

(Blocks 1 open bug)

Details

If you add a word to the dictionary and misspell it anyway possible the spell checker suggestions never shows the word you added to the list.

Step to reproduce:
1) Find a text box, make sure spell check this field is enabled, type thunderbird and it should show up misspelled.
2)right click the word and add to dictionary
3) now try to misspell thunderbird anyway possible; suggestions are thunderbid thunderbir thunderird 
3)Right click any of the above and the suggestion for the correct spelling that you added to the dictionary is not shown. 

Results are the same for any other word added. I tried with mozilla, google, firefox, thunderbird, mozillazine
Flags: blocking1.8.1?
I see this is assigned to Scott. This was with Firefox...I forgot to check with thunderbird last night to see if the results are the same. May be just Firefox specific.
I see the same happen in Thunderbird, although, in the mail application there is also an option "Ignore this word", which works fine.
Summary: Suggestion for misspelled words don't suggest words added to the dictionaries → Words added to the dictionary are not suggested for misspelled words
I think this is a very important bug for Firefox.
At the moment I need to open the file in myspell and add the words so that not my entire box turns red because the dictionary doesn't contain the words.
Would be nice if this function works in the next release.
Or if it can't be repaired in time the function could be hidden in the context-menu so that people don't see that it doesn't work :)
MScott can you take a look at this?
Flags: blocking1.8.1? → blocking1.8.1+
Target Milestone: --- → mozilla1.8.1beta2
Why doesn't the spellchecker use the personal dictionaries for possible replacements?
From the MySpell readme:
  ... it has *no* support for adding words to a personal dictionary...

I think the personal dictionary stuff was added at a higher layer in Mozilla specific code that filters them out before they get to MySpell.
Depends on: hunspell
Target Milestone: mozilla1.8.1beta2 → Future
This was marked blocking1.8.1+. Can you please revisit this? I'm putting it back to ? I don't imagine it will get fixed for Firefox 2.
Flags: blocking1.8.1+ → blocking1.8.1?
Not going to block on this, but would take a safe patch if one appeared.
Flags: blocking1.8.1? → blocking1.8.1-
No longer blocks: SpellCheckTracking
This bug is targeted at future, so should not be blocking Firefox 2 spellcheck tracking bug.
No longer blocks: SpellCheckTracking
Is this going to be fixed with the switch to hunspell?
This WFM with Hunspell. Kurt, care to confirm?
Still does not work for me.  The word even shows up as spelled wrong also and I keep adding it and still no luck.
The words I tried to add aren't even in the dictionary file.
I can reproduce this as well with a trunk nightly. If I type "Hunspell", the word is underlined in red. After selecting "Add to dictionary", the underline is gone and not added if I type it again.
But if I type "Hunspel", the correct "Hunspell" is not suggested.

The personal dictionary is handled by http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/src/mozPersonalDictionary.cpp. The file is persdict.dat, located in the profile.

Németh, can you comment on whether Hunspell supports this already and we just need to hook it up properly?
As far as I can see, mozHunspell::Check checks both Hunspell (mHunspell->spell) and the personal dictionary (mPersonalDictionary->Check), but mozHunspell::Suggest doesn't take the personal dictionary into account:
http://mxr.mozilla.org/seamonkey/source/extensions/spellcheck/hunspell/src/mozHunspell.cpp#410
Summary: Words added to the dictionary are not suggested for misspelled words → Words added to the personal dictionary are not suggested for misspelled words
Sorry they were not in the dictionary file in the installation directory...I thought they got added there. They are infact in the perdict.dat file but are not suggested as Steffan reported.
(In reply to comment #15)
> Németh, can you comment on whether Hunspell supports this already and we just
> need to hook it up properly?

Hunspell has some functions to put personal words into its hash memory handling the personal words as other dictionary words. Moreover, Hunspell can suggest and recognize affixed forms of a personal word adding a sample word for affixation.

API:
  int put_word(const char * word);
  int put_word_pattern(const char * word, const char * pattern);

Hunspell command line executable uses these functions at loading of a personal dictionary.

From Hunspell manual:

...
Personal dictionaries are simple word lists, but with optional word patterns for affixation, separated by a slash:

foo
Foo/Simpson

In this example, "foo" and "Foo" are personal words, plus Foo
will be recognised with affixes of Simpson (Foo's etc.).

---

So Hunspell doesn't handle personal dictionaries directly, 
but supports run-time personal word usage; suggestion
and affixation of personal dictionary words.

Problems:

It probably needs a delete function for run-time personal word deletion, too.

Character encoding of personal dictionary words has to be compatible with encoding of the spelling dictionary. Probably it is not problem for most of the personal words. But to suggest a non latin-1 compatible personal dictionary word, like Ernő (eg. http://en.wikipedia.org/wiki/Ern%C5%91_Rubik), needs to use Unicode-encoded dictionary instead of latin-1 ones for English or other languages. This is a little modification for en_US dictionary (SET ISO8859-1 -> SET UTF-8 change in en_US.aff), but need character conversions for other dictionaries. Maybe the best solution is the run-time UTF-8 conversion from 8-bit encoded dictionaries uonder dictionary loading. The speed overhead is only 10-20% using UTF-8 encoding, the memory overhead depends of the characters, for English is zero, for Russian may be 30-50% (but not 100%, because words and affixes are allocated only in a smaller part of used memory).

I'm not exactly sure what the last comment was getting at but AFAIK it didn't answer the question in comment 15.

Is this doable?
Blocks: 413950
(In reply to comment #18)

Yes, it is. Moreover, Hunspell 1.2.2 beta has a method to load multiple (for example medical and other special) dictionaries to the same language (Hunspell->add_dic()). Unfortunately we have a linking problem: 

Note for the possible developers: I have renamed the personal word functions of Hunspell: see Hunspell->add() and Hunspell->add_with_affix().
> Unfortunately we have a linking problem:

But Ryan VanderMeulen works on it. Thanks, Ryan.
No longer blocks: 413950
So has this been taken for work yet? I'd like to see this soon!
Flags: wanted1.9.1?
Assignee: mscott → nobody
Blocks: 337518
Duplicate of this bug: 354093
wanted thunderbird 3?
Duplicate of this bug: 278944
Duplicate of this bug: 224136
Flags: wanted1.9.1? → wanted1.9.2?
Duplicate of this bug: 514662
This problem is present since 2006 and nobody solved!?
What is the point then you keep the "add to dictionary" feature?
Is this error happens only on Linux or even Windows?
(In reply to comment #27)
> This problem is present since 2006 and nobody solved!?
Need a dev to think this is a high priority or someone to provide a patch.

> What is the point then you keep the "add to dictionary" feature?
Because words you have added to the dictionary are not marked as being spelled incorrectly.

(In reply to comment #28)
> Is this error happens only on Linux or even Windows?
Every platform.
Duplicate of this bug: 550263
Clearing the wanted 1.9.2 ? flag since we're way past that release so I'll shoot for 1.9.3.  Is there anyone at Mozilla Messaging that can be CC'ed here that might be interested in working on this bug?
blocking2.0: --- → ?
Flags: wanted1.9.2?
blocking2.0: ? → -
Duplicate of this bug: 580988
Duplicate of this bug: 732987
I would like this also---for all Mozilla, esp. FF & TB!
I've also seen this Bug while doing the Litmus test for the TB 17 testday, so I marked it blocking Bug 789883.
Blocks: 789883
has anyone found a fix for this that works i don't care if it is an extension or what but i would like the words i add to the dictionary to show up as spelling suggestions.
I don't know if this has any relevance, but I added Bug 1022262 to update Hunspell 1.3.3:

https://bugzilla.mozilla.org/show_bug.cgi?id=1022262
Duplicate of this bug: 1117537
10 years on - still an ongoing issue
I've just found this too.

Firefox 52.0.2 public release (32 bit)

win 7 64bit home premium

Added a word but that word doesn't then get produced as part of suggestions for the same mis-spelling.

I have confirmed it's been saved to the persdict.dat file

Just doesn't seem to be read in and applied when spell checking.

I've tested too in safe mode - same result.



Regards,

Gary
Priority: -- → P2
Target Milestone: Future → ---
Hi there - I'm with Gary...

I've just found this too.

Firefox 52.9.1 public release (32 bit)
Windows 10 64bit home premium - rel.1804

Added a word but that word doesn't then get produced as part of suggestions for the same mis-spelling.
I have confirmed it's been saved to the persdict.dat file (located in the active profile directory)

Just doesn't seem to be read in and applied when spell checking.
[NOTE! in the prefs.js file spellchecker is set to:
                user_pref("spellchecker.dictionary", "pt-BR");
could this have an impact - i.e. that only one! dictionary at a time is configured to be referenced??]


Best Regards,
Vitus
I'm using Windows Vista - yes I know ...TB version 52.9.1
Confirm you can add words to the Personal Dictionary, but spell check does not offer any words entered into the Personal Dictionary, so Personal Dictionary is of no use.
Basically, the same as previous comments.
I'm aware that it is unlikely to ever get fixed for verion 52.9.1, I just mention it so you are aware of it going wrong in that version.

However, I would like to draw your attention to a recent support issue.
Thunderbird 60.2.1 (64 bit) Linux Mint 17.3
Reporting the Personal Dictionary is not working. You can add words, but spell check is not using them.
Link to support forum:
https://support.mozilla.org/en-US/questions/1237935

This is a really old bug. Would it be more appropriate to open a new bug on this or is it worth keeping this one going as there is much input from previous comments?
Extra info which may help developers as this issue may be occuring on recent versions.
If I type a word which I know is not in any dictionary eg: English British Dictionary such as 'holymoly', it is flagged with red underline.
I click on Spelling and 'holy' or 'holly' is offered as alternate spelling.
Then add 'holymoly' to personal dictionary.

In new Write window I type 'holymoly' and it is Not flagged as incorrect, so it has been detected in my personal dictionary as an ok spelling.
In a new Write message, I then type it incorrectly such as 'hoilymoly', again it is flagged as incorrect, so I click on 'Spelling', but it is not listed as an alternative; holy and holly as the only options listed, so it has not added the personal dictionary options to the list. Therefore it cannot be corrected via this method.
Like Anje above, I have the same issue.  He was attempting to help me with "i" not being flagged even though "I" is in my personal dictionary.

For my test, I added a friend's last name that is similar to regular words.  Like the "holymoly" example above, my friend's name was fine when I type it right.  If I don't capitalize it or add an "S" at the end, the word is flagged.  If I right-click, the correct spelling of my friend's name does not appear, just the normal words.

I am using Windows 7 and TB 60.3.2.
You need to log in before you can comment on or make changes to this bug.