Adding new dictionaries to aspell: Difference between revisions

Line 21: Line 21:
</tt>
</tt>


Note: If you are using a non-english based language with special chars like tildes (spanish, for example), you have to modify aspell.php
 
 
<b>NOTE:</b> If you are using a non-english based language with special chars like tildes (spanish, for example), you have to modify aspell.php


This file is located at /opt/zimbra/httpd/htdocs/aspell.php. Replace this block (line 82 or so)
This file is located at /opt/zimbra/httpd/htdocs/aspell.php. Replace this block (line 82 or so)
Line 46: Line 48:
$words = preg_split('/[^\w\'-áéíóúäëïöüàèùìòñçâêîôû]+/', $text);
$words = preg_split('/[^\w\'-áéíóúäëïöüàèùìòñçâêîôû]+/', $text);
</nowiki></pre>
</nowiki></pre>
This regexp line should be enough for most western Europe languages (Spanish, French, German, Portuguese and Italian). Other languages with other special chars (nordic languages??) should modify to include extra characters.

Revision as of 01:54, 1 October 2006

How to add a new dictionary to aspell

  • Download the dictionary from gnu.org
  • Extract it from the tar file in a work directory
  • Set Zimbra's aspell in the path with:
PATH=/opt/zimbra/aspell-0.60.3/bin:$PATH
  • Configure and install the dictionary according to the README

./configure
make
make install

  • Edit the file /opt/zimbra/httpd/htdocs/aspell.php to reference the new dictionary. For example to add the french dictionary:

$dictionary = pspell_new("en_EN");
TO
$dictionary = pspell_new("fr_FR");


NOTE: If you are using a non-english based language with special chars like tildes (spanish, for example), you have to modify aspell.php

This file is located at /opt/zimbra/httpd/htdocs/aspell.php. Replace this block (line 82 or so)

 $suggestions = implode(",", pspell_suggest($dictionary, $word));
 $misspelled .= "$word:$suggestions\n";

with this one:

 $suggestions = implode(",", pspell_suggest($dictionary, $word));
 $suggestions=iconv("iso-8859-1","UTF-8",$suggestions);
 $misspelled .= "$word:$suggestions\n";

There is also a problem when splitting words. Replace (line 48 or so)

$words = preg_split('/[^\w\'-]+/', $text);

with this one:

$words = preg_split('/[^\w\'-áéíóúäëïöüàèùìòñçâêîôû]+/', $text);

This regexp line should be enough for most western Europe languages (Spanish, French, German, Portuguese and Italian). Other languages with other special chars (nordic languages??) should modify to include extra characters.

Jump to: navigation, search