-->

terça-feira, 13 de novembro de 2007

MS Word e Firefox: Mesclando dicionários de usuário

Nota: embora a definição no Aurélio para "dicionário" seja: "Conjunto de vocábulos duma língua ou de termos próprios duma ciência ou arte, dispostos, em geral, alfabeticamente, e com o respectivo significado, ou a sua versão em outra língua.", para a Informática e neste contexto "dicionário" é habitualmente apenas uma lista de palavras. Não é necessário o "respectivo significado".

Se você é usuário do MS Word pode já ter uma lista enorme de palavras adicionadas ao dicionário padrão. Se acontece de você também usar o Firefox 2.0, não seria bom poder reutilizar o seu dicionário de usuário do MS Word no Firefox?

Nos comentários do meu post anterior sobre o corretor ortográfico do FF 2.0 ficamos sabendo que o dicionário de usuário do Firefox é um arquivo texto (quase) comum que pode ser visualizado no Notepad. O arquivo, em uma instalação XP, está localizado em:

C:\Documents and Settings\[usuário]\Dados de aplicativos\Mozilla\Firefox\Profiles\[perfil]\persdict.dat

Procurar em todo a partição onde está o Firefox por "persdict.dat" ("personal dictionary") pode ser uma boa idéia.

Esta página me deu a dica de que é possível fazer a mesclagem. Eu não sabia, mas o arquivo criado pelo MS Word é tão simples quanto o do Firefox. Na verdade, ainda mais simples para usuários Windows porque não é UTF-8 (mais sobre isso adiante) e a quebra de linha é DOS/Windows (CrLf). Para o Office em inglês o arquivo se chama Custom.dic, mas eu descobri apanhando que no Office PT-BR ele se chama Usuario.dic.

Office 97 (no 9x ou no XP):
C:\Arquivos de Programas\Microsoft Office\Office\Usuario.dic

Office2000 (no XP):
C:\Documents and Settings\[usuario]\Dados de aplicativos\Microsoft\Prova\Usuario.dic

Note que o dicionário do Office97 é compartilhado com todos os usuários do PC mas o Office 2000 já mantém um dicionário para cada usuário.

Como eu não posso listar aqui cada local possível e imaginável onde esse arquivo pode estar, faça uma busca em toda a partição onde está instalado o Office (geralmente em C:) por Usuario.dic ou mesmo *.dic.

Nota: É sempre uma boa idéia ter desligada a (imbecil) configuração do Windows de "ocultar extensões para arquivos conhecidos". Se preferir não desligar, é melhor saber o que está fazendo, porque não vou levar essa possibilidade em consideração aqui.

O arquivo do Firefox está no formato Unix (as quebras de linha são diferentes) e UTF-8 (uma das formas possíveis de Unicode), por isso usar o Notepad para visualização é possível, mas não é a melhor opção para editar o arquivo. Eu recomendo o freeware PSPad pelo seguinte:
  • Porque é freeware, claro!
  • Ele abre o arquivo Unix e exibe como se fosse um arquivo texto Windows;
  • É compatível com UTF-8;
  • Tem uma função Sort que permite ordenar o arquivo e, muito importante, remover as ocorrências duplicadas no processo;
  • Salva no formato Unix, de modo que o Firefox não vai espernear.
É irrelevante para mim, mas PSPad pode ser configurado para PT-BR (veja em Settings -> Program Settings -> Language);

O procedimento basicamente é o seguinte:
  • Feche o Firefox;
  • Faça um backup de persdict.dat pro caso de algo dar muito errado;
  • Abra persdict.dat no PSPad. Certifique-se de que na barra de status aparece: "Code page: UTF-8". Se estiver aparecendo ANSI ou outra coisa, algo deu errado. Você pode continuar, mas o resultado pode não ser o esperado;
  • Abra usuario.dic no PSPad (vai abrir outra aba) ou no Notepad. Não faz diferença;
  • Copie todo o conteúdo de usuario.dic e cole em persdict.dat;
  • Use Edit-Sort para ordenar o resultado. Marque "Remove Duplicates" antes de dar o OK;
  • Salve o arquivo. Não é necessário especificar tipo, porque o PSPad vai salvar do mesmo jeito que abriu (Unix e UTF-8);
Abra o Firefox e teste. Abra alguma página onde você possa digitar texto e digite uma palavra que você sabe que estava no dicionário do Word mas não no do Firefox.

É pena que não seja fácil assim manter os dois sincronizados (estou pensando num jeito) :)

[15/11] Eu criei um jeito.

18 comentários:

  1. Jefferson,

    "Use File-Sort para ordenar o resultado."

    Edit > Sort

    ResponderExcluir
  2. Não uso o dicionário do Word, e no momento não estou nem mesmo com ele instalado no PC (estou provisoriamente usando o OpenOffice portable), mas usei as suas dicas para adicionar mais palavras ao meu dicionário. Encontrei na página de download do PSPad vários "dicionários" (sem o respectivo significado), dentre eles um em português brasileiro e um em inglês.

    A lista de palavras em português tem quase 2,3 MB e a lista em inglês tem 3,9 MB. A codificação é ANSI (Windows). Tentei acoplar essas listas ao meu pt-BR.dic, para fazê-lo reconhecer mais palavras em português e conhecer também palavras inglês, mas não deu certo. Depois que terminei a edição do arquivo fui testar e o corretor ortográfico começou a sublinhar todas as palavras que eu digitava, como se nada estivesse correto.

    Restaurei o backup do pt-BR.dic e adicionei as palavras que eu queria no persdict.dat.

    Agora tenho um persdict.dat de 5,66 MB (talvez tenha ficado desse tamanho porque as palavras repetidas foram removidas).

    Funcionou. Agora meu corretor ortográfico está bem mais "inteligente", conhece até inglês (isso é bom pra mim, pois uso muitas palavras em inglês e às vezes escrevo neste idioma também), mas percebi um comportamento não desejado: Ele conhece a palavra "yes", mas não conhece "Yes", quando escrita com uma ou mais maiúsculas, porque a palavra está toda com minúsculas na lista. Talvez isso não acontecesse se eu conseguisse implantar as novas listas em pt-BR.dic.

    Estaria tudo bem se não fosse um "pequeno" efeito colateral: Com o persdict.dat desse tamanho, às vezes o Firefox usa 100% do processador e fica congelado por períodos que variam entre 30 e 60 segundos. E enquanto isso acontece o persdict.dat fica com 0 bytes e somente é restaurado depois que o congelamento passa. Ou seja: Acho que tudo isso valeu nada. :( Não estou conseguindo reproduzir o problema sempre que tento, mas está acontecendo.

    ResponderExcluir
  3. Tchê...

    A diferença de codificação entre os arquivos complica a história mas, não fosse isso, creio que o dilema da "sincronização" poderia ser resolvido com um hard link (http://en.wikipedia.org/wiki/Hard_link).

    Abraço!

    ResponderExcluir
  4. Rafa,

    1) Eu estava com o PSPad e o Ultraedit abertos e acabei misturando os dois. Obrigado!

    2) Eu já notara o problema da diferença de capitalização. Às vezes isso é desejável.

    3)Eu já imaginava que se o arquivo ficasse muito grande pudesse dar algum tipo de problema no FF. Mesclar arquivos de usuário não deve dar esse tipo de problema.

    4) Eu dei uma olhada no dicionário fornecido pelo PSPad e ele tem 192.979 palavras. O problema é que já numa rápida olhada no conteúdo achei sua qualidade questionável. Eu não me vejo, nem mesmo em um futuro distante, usando as palavras "Zyndal", "Zurchimitten", "Zurah", "Zubaidah", "Zuclopentixol", "Aaminah", "Aavora", "ababelação", "aasivah", "Aaanisa", etc. E isso foi porque só olhei as duas extremidades da lista. Há um monte de palavras que soam como nomes de remédio ou de seus princípios ativos. Muitos outros parecem nomes próprios e outros parecem puramente inventados. A lista parece ter sido feita por alguém que juntou uma centena de documentos da internet e ordenou tudo removendo as duplicatas. Ou mesmo pode ter sido aproveitada de uma lista usada em "Dictionary Attacks"

    Eu acho que tentar decodificar os glossários do aurélio, do Babylon ou outros "confiáveis" é muito mais produtivo do que tentar aproveitar o do PSpad. Eu mesmo não quero que o Firefox considere "certo" se eu grafar qualquer uma dessa palavras esdrúxulas no meu texto.

    ResponderExcluir
  5. Uma forma de mesclar os dados seria o WinMerge.
    Utilizo ele com frequencia para fazer alterações arquivos .txt / ou mesmo cógidos html.

    É free e seu conceito (Merge) é feito para isso :)

    ResponderExcluir
  6. Eu, particularmente, prefiro editar textos planos com o Vim - http://www.vim.org

    Como ele é livre e multiplataforma, pode ser uma boa alternativa :)

    ResponderExcluir
  7. Também sempre achei o ocultar extensões do Windows um absurdo. Até que meu irmão justificou essa necessidade para mim. Se isso não fosse o padrão do sistema operacional, um monte de jeca iria tirar a extensão e trocar o nome todo de arquivos, sem saber o que fazer depois. Seria mais um bando de gente atrapalhando o dia de trabalho dos técnicos ligando para os celulares deles dizendo "o computador não está funcionando, não estou conseguindo abrir o arquivo tal e o ícone não é mais bonitinho".

    ResponderExcluir
  8. Ygor,

    O WinMerge parece ser um programa interessante, porém sua vantagem nesse caso é duvidosa, pois não reconhece o arquivo do Firefox como UTF8 e exibe a acentuação bagunçada.

    ResponderExcluir
  9. KamiKazeNH,

    Sem querer ofender o seu gosto pessoal, mas comparado com outros editores de texto Windows gratuitos (particularmente, o PSpad) o ViM parece bem "primitivo". Ele sequer reconheçeu o arquivo do Firefox como UTF-8. Tem o dobro do tamanho do PSpad e menos da metade da funcionalidade.

    Eu sei que você é um usuário Linux e nesse caso o ViM pode oferecer o diferencial da "familiaridade", mas usuários Windows não enxergam essa vantagem.

    ResponderExcluir
  10. Gente,

    Antes de recomendarem programas, por favor testem se eles funcionariam bem nesse cenário.

    ResponderExcluir
  11. Intruder_A614/11/07 10:59

    O meu sonho é o dicionário do Aurélio no FF ( e também no Office ). No Palm ( PalmOS ) alguém já conseguiu esta facanha, quem sabe se este arquivo do Palm não poderia ser usado para isso no FF ???

    ResponderExcluir
  12. Intruder,

    O cara que converteu para o PalmOS poderia fazer isso com um pé (braço, na verdade) nas costas. Tentar decodificar um arquivo do PalmOS pode ser tão difícil quanto decodificar o dicionário original Aurélio. Só estudando o caso.

    ResponderExcluir
  13. Intruder_A614/11/07 14:36

    Eu estava examinando o arquivo e ele parece ser binário puro, não dá aparentemente para tirar nenhum texto dele ( parece até que está criptografado ou compactado ), mas examinarei com mais calma para ver se tem algum jeito.

    E o arquivo é enorme, são quase 10MB, pelo que dizem, deve dar muito galho no FF.

    ResponderExcluir
  14. Intruder,

    O arquivo é grande por conter o "respectivo significado".

    Não precisamos disso no Firefox.

    ResponderExcluir
  15. Intruder_A614/11/07 15:01

    Esqueci desse detalhe ( importante ).

    Se você quiser eu posto em algum lugar o arquivo ( no seu fórum por exemplo ) caso você ou alguém queira dar uma olhada.

    ResponderExcluir
  16. Intruder,

    Apenas a lista de palavras não seria problema, mas a publicação (não necessariamente a posse) de um arquivo que declaradamente tem o "respectivo significado" dado pelo Aurélio é 100% ilegal. Eu não posso ter isso em meu site, nem links para sites que tenham.

    ResponderExcluir
  17. Ryan,

    Apenas por curisidade ...
    O WinMerge tem 2 aplicações - WinMerge.exe e WinMergeU.exe

    A primeira é a versão ANSI, e a Segunda é UTF-8.

    De qualquer forma, também não consegui localizar o arquivo no meu FireFox (mas eu uso o Portable)

    No lugar encontrei o seguinte arquivo:

    C:\Documents and Settings\usuario\Desktop\FirefoxPortable\Data\profile\extensions\pt-BR@dictionaries.addons.mozilla.org\dictionaries\pt-BR.dic e .aff - me parecem com o dificionario igualmente utilizado como o .DAT

    Esse nao tive problemas com o WinMergeU para abrir !

    Att

    ResponderExcluir
  18. Ygor,

    Eu não sabia que um se chamava WinmergeU, mas eu executei ambos usando os atalhos no menu e diretemente nos EXEs e não vi qualquer diferença.

    O arquivo que encontrou foi exibido corretamente pelo motivo explicado por mim nos comentários do outro post: ele não é UTF-8

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.