
Why does FF have the wrong default spell-check language?
For many years, FF has assumed the wrong spell-check language. This box I'm typing in right now is a good example. When I right click and go to the "Languages" sub-menu, I see that "Zambia (English)" is selected. This seems to be the default and I no idea why.
I can select United States (English), which is fine for this one site. But, it doesn't change the default. So, when I go to another site and have to use a text box, it is Zambia (English) again.
I don't understand what could possibly cause this.
All Replies (10)
Do you have a dictionary for Zambian English installed? (I don't actually see one: https://addons.mozilla.org/en-US/fire.../language-tools/.)
Could you check a couple things in the about:config preferences editor:
(1) In a new tab, type or paste about:config in the address bar and press Enter. Click the button promising to be careful.
(2) In the search box above the list, type or paste dict and pause while the list is filtered.
What do you see for: spellchecker.dictionary? If the entry is not sensible, try a right-click > Reset to revert to default.
(3) In the search box above the list, type or paste userag and pause while the list is filtered.
What do you see for: general.useragent.locale?
(4) In the search box above the list, type or paste lang and pause while the list is filtered.
What do you see for: intl.accept_languages?
This last setting corresponds to:
Edit menu > Preferences > Content > Language section: "Choose" button
Wow, that was awesome.
I don't have any 'language-tools" add-ons installed. But, on my system, I do have hunspell installed for LibreOffice and, apparently, all en_* languages are included in the base (required) set. It's quite a large set; the list that shows in the context menu contains more than 20 entries.
I think the first one was dead on. spellchecker.dictionary was set to en_IN. But, isn't that India?!
spellchecker.dictionary;en_IN
I reset it, now it is empty, the default. My locale is set correctly and that is what confused me. This was a better check, thank you, but I assumed that FF would pick up the correct locale from my environment, which is why I thought it was so weird that another dictionary would be the default.
general.useragent.locale;en-US
Right, I certainly check that setting many times, which also contributed to my confusion. However, the setting is not the default.
intl.accept_languages;en-us
I reset it, also, and now it shows
intl.accept_languages;en-US, en
...
Hmm. But, it's still not fixed. I went to some of the pages that showed the wrong dictionary in the past, and they still say Zambia. In fact, after trying a couple pages, spellchecker.dictionary was again set to en_IN, but I didn't do that. I created a new FF profile and it does not contain any preference name "spellchecker.dictionary" at all, but when I go to a page with text box, the contact menu also shows that Zambia is selected. So confused.
You can try to remove all dictionaries that you do not need and only leave the ones(s) you regularly use.
- /usr/share/hunspell/
I could *try* it, yes. Those files are required by other packages, though.
...
Okay, so I removed all but the one en-US dictionary and it still does not work. There is now only one entry in the list of spell-check Languages context menu, but it is not selected. If I reset spellchecker.dictionary to the default or create a new FF profile (where in that preference does not exist), Check Spelling is checked, but it doesn't underline any misspelled words. If I selected English(United States) as the dictionary, spellchecker.dictionary is set to en_US and it works for that page, but not for other web-sites, exactly as before.
What is the file name of the dictionary files in the hunspell folder?
Do you have any special extensions that are added globally (i.e. do not have a Remove button) by your Linux distribution?
> What is the file name of the dictionary files in the hunspell folder? -rw-r--r--. 1 root root 3115 Oct 24 04:08 en_US.aff -rw-r--r--. 1 root root 534141 Oct 24 04:08 en_US.dic
FWIW, it's /usr/share/myspell/ on my distrro.
> Do you have any special extensions that are added
globally (i.e. do not have a Remove button) by your Linux distribution?
No, there are no extensions without remove options. There are none at all listed in the new profile I've been using for testing, too. My personal profile has many extensions, but I see the same behavior in the brand new profile.
Hmm, any more thoughts, anyone? It seemed like we were getting somewhere. :-)
Firefox may get confused by the difference between the naming convention with the underscore (en_US) that is used by LibreOffice and the locale (en-US) that is also used by the dictionary that is part of the en-US Firefox release and that is also used by web page to specify the language in a meta tag.
I'm not sure if there is an environment variable that Firefox uses to find these dictionaries.
I also have MySpell dictionaries in /usr/share/myspell and Firefox doesn't find them.
- Bug 338427 - Spellchecker should respect @lang
- Bug 682564 - Dictionary keeps switching to en-US despite being set otherwise
That is an interesting suggestion, cor-el.
I opened a new bug for my specific issue: bug 992118 - spell checker has no default dictionary
While the two bugs you mention are similar and may be related, this one is a closer match, though still not exact: bug 992944 - Spell checker skips current locale when pref spellchecker.dictionary or document content invalid
Modified
Just an update. I can't see any note about it in my bug, but I thought someone said the fix was planned to be released with FF31. So I checked FF31 and it's better, but still not completely correct.
FF31 improves pages in which lang=en is set. That certainly helps. I'm very happy. Thanks so much for pushing that out.
But pages with lang=en-US are still broken. I just used my test HTML pages I made for myself; I haven't had a chance to check real pages and I don't know what percentage of the WWW has which lang setting, but I'm asking the on my bug if someone give me an update.