<html><head>
	<title>Spell Checking and Dictionaries</title>
	<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
	<!--Heading: H2, default font (we use css, which defines color (as #cc6600) and font face; body text: default; subheadings: H4, default font-->
	<!--Language here is supposed to offer a start, not a finish. Feel free to change it as necessary, but try to keep within the bounds described.-->
	<!--Project mailing lists, project news, are all taken care of now by SourceCast's top navbar. You do not need to add a table for them.-->
	<!--You might wish to include a "to-dos" list or something like that.-->
	<h2>Spell Checking and Dictionaries </h2>

	<h4>Dictionaries/Affix files Now Available</h4>
	
	<p>Please see the <a href="download_dictionary.html">Dictionary Download Page</a> for more information.</p>

	<h4>How to Create Dictionary and Affix File for Another Language</h4>
	
	<p>The MySpell spell checker uses a modified version of Ispell's
	dictionaries and affix files (modified to permit fast parsing, to be case
	sensitive, etc.) so that "munched" dictionaries can be kept in straight
	text. The same is true for <a href="http://hunspell.sourceforge.net/">Hunspell</a>
	which has replaced MySpell in OpenOffice.org 2.0.2 and later.</p>
	
	<p>So, the simplest way to add spell checking capabilities is to:</p>
	
	<p><b>1.</b> Find an Ispell dictionary and affix file (both have to be
	modified to work). See <a href="https://www.cs.hmc.edu/~geoff/ispell-dictionaries.html">
	https://www.cs.hmc.edu/~geoff/ispell-dictionaries.html</a> for a good starting point.
        Hunspell files will work with no modifications.</p>
	
	<p><b>2.</b> Contact the author of the wordlist to make sure licenses
	are clear and acceptable. A list of compatible licenses is at
        <a href="https://www.apache.org/legal/resolved.html">the Apache license compatibility page</a>
        but since you will be packaging an extension
        <a href="https://issues.apache.org/jira/browse/LEGAL-117">many free software licenses are considered acceptable</a>
		in this particular case.
        </p>
	
	<p><b>3.</b> (Obsolete; only if you use Ispell files) Convert the affix file and wordlist from the Ispell formats
	to the formats needed by MySpell/Hunspell.  Converting an affix file is time
	consuming (several hours) but no programming skills are required and all that
	is needed is a simple text editor.  The best way to understand
	how to translate an affix file to MySpell format is by example: <a
	href="english.aff"> Ispell's English Affix File</a> and <a
	href="http://lingucomponent.openoffice.org/en_US.aff">MySpell's
	English Affix File</a> and then grab the following <a href="affix.readme">README
	(text file)</a> that explains in more detail what must be done. Also
	check out the <a href="http://hunspell.sourceforge.net/">Hunspell homepage</a>.
	Hunspell supports MySpell syntax but offers several extensions which you
	might need.</p>
	
	<p><b>5.</b> Package an extension following the
        <a href="https://wiki.openoffice.org/wiki/Extension_Dictionaries">guidelines for dictionary extensions</a>,
        test it with OpenOffice and publish it to <a href="http://extensions.openoffice.org">the OpenOffice
        Extensions repository</a>. Should you need help, contact the
        <a href="http://openoffice.apache.org/mailing-lists.html#localization-mailing-list-public">localization mailing list</a>.
        You must also include a README.txt file that specifies the
	author; original ispell author, if any; the specific language and locale
	supported; and the license you are releasing your dictionary under
	(GPL, LGPL, BSD, or other).
        </p>

	<p><b>6.</b> Either contact the
        <a href="http://openoffice.apache.org/mailing-lists.html#localization-mailing-list-public">localization mailing list</a>
        or <a href="https://issues.apache.org/ooo/enter_bug.cgi?product=Internationalization">Create 
	an issue</a> (you must be logged in) for the Internationalization project
	asking the developers to include support for spell checking in your locale
	(en_US, en_CA, de_DE, pt_PT, etc) and supply the link to the latest release
        of your extension.</p>

	<h4>Once you have reached here: Congrats!  You have helped the
	OpenOffice effort - Thank You!</h4>
	<p>&nbsp;</p>
</body>
</html>
