Closed Bug 1200186 Opened 9 years ago Closed 9 years ago

Fix spell checker so it can handle websites which specify the document/element language in lower case.

Categories

(Core :: Spelling checker, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla43

People

(Reporter: mark, Unassigned)

References

(Blocks 1 open bug)

Details

While fixing up the spell checker dictionary logic, it became clear that the spell checking dictionary check is case sensitive, which regularly doesn't work if websites have languages specified in lower case (a common occurrence).

The spellchecker should make a case-insensitive check for language specified to match a dictionary to the element/document language.

See also: See https://bugzilla.mozilla.org/show_bug.cgi?id=1073840#c34
Summary: Fix spell checker so it can handle websites which specify the dictionary in lower case. → Fix spell checker so it can handle websites which specify the document/element language in lower case.
Will be fixed as part of bug 1200533.

Take a look at attachment 8656398 [details] [diff] [review], there we have now:
    // Before we start, let's correct any problems due to non-matching case.
    int32_t i, dictCount = dictList.Length();
    for (i = 0; i < dictCount; i++) {
      nsAutoString dictStr(dictList.ElementAt(i));
      if (dictName.Equals(dictStr, nsCaseInsensitiveStringComparator())) {
        dictName.Assign(dictStr);
        printf ("***** Corrected dictName to |%s|\n", NS_ConvertUTF16toUTF8(dictName).get());
        break;
      }
    }
BTW the current behaviour is *incorrect* standards-wise.

RFC 5646, section 2.1.1.  Formatting of Language Tags

   At all times, language tags and their subtags, including private use
   and extensions, are to be treated as case insensitive: there exist
   conventions for the capitalization of some of the subtags, but these
   MUST NOT be taken to carry meaning.

   Thus, the tag "mn-Cyrl-MN" is not distinct from "MN-cYRL-mn" or "mN-
   cYrL-Mn" (or any other combination), and each of these variations
   conveys the same meaning: Mongolian written in the Cyrillic script as
   used in Mongolia.

http://www.ietf.org/rfc/bcp/bcp47.txt

RFC 1766, 2.  The Language tag

   NOTE: The ISO 639/ISO 3166 convention is that language names are
   written in lower case, while country codes are written in upper case.
   This convention is recommended, but not enforced; the tags are case
   insensitive.
Good to know, thanks!
We'll fix it.
Status: UNCONFIRMED → NEW
Depends on: 1200533
Ever confirmed: true
Fixed as part of bug 1200533.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
You need to log in before you can comment on or make changes to this bug.