Palavra:   

Revista PHP / PHP

Carlos Silva

Desenvolvedor web, certificado ISPA CYCLADES e Macromedia. Desenvolvedor usando as tecnologias C#, JSP, PHP, JavaScript, XML, ABAP, Tableless e outros. Certificado em Segurança da Informação e atualmente trabalhando com ativos de Rede Cisco.

ASPELL - Corretor ortográfico

Independentemente se você é um gênio em português,  é sempre útil ter um corretor ortográfico e  não há um bom número de ferramentas disponíveis para esse efeito.

Algumas ferramentas que tenho conhecimento que  podem ser habilitadas o corretor ortográfico são: FCKeditor, Tinymce, Wordpress que é base do Tinymce.

O site do aspell é http://aspell.net/

Bom então vamos ver se você tem o aspell instalado no servidor, e para isso você deve ter uma conta onde possa acessar via SSH e um cliente para acesso.

No nosso caso vou usar o PuTTy que é um cliente elaborado para protocolos SSH, Telnet e Rlogin. Com ele é possível logar-se a um computador multi-usuário através de outro, estabelecendo assim uma conexão remota entre cliente e servidor. Por exemplo, você inicia o programa e conecta-se a outra, desta forma uma nova janela será aberta para o envio de comandos e afins entre as duas máquinas conectadas. É possível trabalhar com um sistema Unix a partir de seu PC com este aplicativo.

Download versão Windows
Download versão Linux

Ao abrir o programa você verá algo como a imagem abaixo, coloque o seu site e a posta como mostra a imagem.


Ao clicar em open vai abrir a tela preta pedindo seu login  e depois sua senha


Agora vamos ver se você tem o ASPELL instalado, lambrando que no terminal teremos <nome>$ e loco vem os comandos.
  1. $ aspell -l pt_BR -a
Após executar o comando acima  e aparecer a mensagem abaixo é sinal que você não tem suporte a pt_BR.
  1. Error: No word lists can be found for the language "pt_BR".
Como não temos suporte a idioma pt_BR, devemos instalar, caso você não tenha acesso, deverá solicitar ao administrador para instalar e com isso poderá ter um custo com isso. Mas no meu caso como eu tenho acesso, eu mesmo vou instalar.

No link ftp://ftp.gnu.org/gnu/aspell/dict/ você verá uma gama de opções de idioma, basta escolher o pt_BR que
no meu caso optei pelo arquivo aspell6-pt_BR-20080221-1.tar.bz2.

Vamos aos comandos
  1. wget ftp://ftp.gnu.org/gnu/aspell/dict/pt_BR/aspell6-pt_BR-20080221-1.tar.bz2
  2. tar -xvjf aspell6-pt_BR-20080221-1.tar.bz2
  3. mkdir usr
  4. cd aspell6-pt_BR-20080221-1
  5. ./configure
  6. make install
  7. make clean
  8. cd ..
Depois de compilarmos, iremos testar assim
  1. $ aspell -d $HOME/aspell6-pt_BR-20080221-1/pt_BR -l pt_BR -a
Note que após executarmos o comando acima se tudo tiver correto a mensagem abaixo  será exibida

Caso queira saber opções de comando basta digitar aspell help

Agora vamos configurar o Wordpress  e para isso vamos achar o arquivo tiny_mce_config.php  que fica localizado na pasta /wp-includes/js/tinymce.

Ao localizar initArray e adicionamos o pellchecker_languages: “+brazilian=pt_BR”
  1. initArray = {
  2. mode : “specific_textareas”,
  3. editor_selector : “mceEditor”,
  4. width : “100%”,
  5. spellchecker_languages: “+brazilian=pt_BR”,
Mas o porque eu usei o brazilian?
R: Se você no terminal entrar no diretorio usando o comando cd aspell6-pt_BR-20080221-1 e depois usar o comando ls -l verá o arquivo brazilian.alias, ou Portuguese.alias entre outros.

Agora  você precisa ir na pasta /wp-includes/js/tinymce/plugins/spellchecker/. Devemos editar o arquivo  config.php.
  1. spellCheckerConfig['tinypspellshell.aspell'] = ‘/usr/bin/aspell -d /caminho do aspell/pt_BR’;
  2. spellCheckerConfig['default.language'] = ‘pt_BR’;
No diretório /modules/tinymce/tinymce/jscripts/tiny_mce/plugins/spellchecker/classes temos 3 classes onde vamos usar uma delas. As 3 classes são:
  1. TinyGoogleSpell.class.php
  2. TinyPspell.class.php
  3. TinyPspellShell.class.php
No final do mesmo arquivo usamos a classe TinyPspellShell.class.php
  1. require_once("classes/TinyPspellShell.class.php"); // Command line pspell
  2. // require_once("classes/TinyGoogleSpell.class.php"); // Google web service
  3. // require_once("classes/TinyPspell.class.php"); // Internal PHP version
OBS: Outra opção que vale a pena conferir : http://www.netjs.com/speller/

Referencias
http://linux.dsplabs.com.au/aspell-word-spelling-using-foreign-dictionaries-p15/
http://www.khngai.com/tools/man/index.php/info/aspell
http://linux.die.net/man/1/aspell
http://aspell.net/man-html/Creating-an-Individual-Word-List.html
http://search.cpan.org/~hank/Text-Aspell/Aspell.pm
http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker
http://drupal.org/?q=node/69991

Bom pessoal, espero que ajude e até a próxima.

Opções de Interação