[[BackLinksMenu]] [[TicketQuery(summary=SPELL_CHECK_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == Support for spell-checking needs to be added to Sophie. After this task is completed, spell-checking capabilities should be available. At the first revision of this task the expected end-user functionality is defined and research is performed to find an appropriate third-party library for spell-checking that will be integrated in Sophie. Preliminary design for integration should be available. At next revisions, actual implementation takes place. == Task requirements == * Perform a research to find an appropriate library for spell-checking. Spell check in Sophie will be implemented initially the following way: * The Tools tab will contain a spell-check palette. It will contain the following elements: * Spell-check button - will run a spell check on the text within the currently selected chain. * Toggle underline button - will turn on/off underlining of misspelled words (they will be underlined with a dotted line as in Trac). * Replace/Ignore buttons - will replace/ignore the currently selected misspelled word. * A list of misspelled words - it will contain the currently found misspelled words. * Clicking on a misspelled word will highlight it (select it) in the text (and go to the page it is on if necessary). * A list of suggestions for correction - it will contain possible corrections for the selected misspelled word. * Double-clicking on a suggestion will replace the misspelled word. * When a word is replaced/ignored, the next misspelled word is selected. * Initially up to two languages in a book should be selectable (that is, spell-check should be performed against two dictionaries). * UI for language selection is not defined yet. * NOTE: These requirements are subject to refinement in the next revision of the task. They are listed here to serve as general guidelines for the research. * Describe the research findings in the [wiki:SPELL_CHECK_R0#Design Design] section of this page. Include the following information about each library: * Name and website; * Licensing information * Provided features (incl. supported languages); * Ease of integration; * In the [wiki:SPELL_CHECK_R0#Implementation Implementation] section, suggest the library that is most appropriate for use in Sophie. Provide preliminary design of how to integrate it in Sophie. Required spell-check functionality can be redefined here based on the library chosen. == Task result == This wiki page (containing research findings and preliminary design for integration). == Implementation idea == Jazzy and Suggester are two possible candidates. Suggester provides search suggestions as well. == Related == None == How to demo == Show the research findings and how the library will be integrated. = Design = ^Describe your design here. = Implementation = ^Describe and link the implementation results here (from the wiki or the repository). = Testing = ^Place the testing results here. = Comments = ^Write comments for this or later revisions here.