GNU Aspell
 
Свободное и открытое программное обеспечение для проверки орфографии.

Вебсайт: http://aspell.net/
Поддерживаемые платформы: Win32, Linux
Заголовки: aspell.bi
Версия заголовков: 0.50

Пример

'' GNU-ASspell пример, сконвертированный из http://aspell.net/win32/

#include once "aspell.bi"

Dim As AspellConfig Ptr spell_config = new_aspell_config()

'' Измените здесь, чтобы установить язык словаря при желании
aspell_config_replace(spell_config, "lang", "en_CA")

'' Создание SPELLER объекта
Dim As AspellCanHaveError Ptr possible_err = new_aspell_speller(spell_config)
If (aspell_error_number(possible_err) <> 0) Then
    Print *aspell_error_message(possible_err)
    End 1
End If
Dim As AspellSpeller Ptr speller = to_aspell_speller(possible_err)

Dim As String word
Do
    Print 
    Input "Enter a word (blank to quit): ", word
    If (Len(word) = 0) Then
        Exit Do
    End If

    If (aspell_speller_check(speller, StrPtr(word), Len(word)) <> 0) Then
        Print "Word is Correct"
    Else
        Print "Suggestions:"
        Dim As AspellStringEnumeration Ptr elements = _
            aspell_word_list_elements(aspell_speller_suggest(speller, StrPtr(word), Len(word)))
        Do
            Dim As ZString Ptr w = aspell_string_enumeration_next(elements)
            If (w = 0) Then
                Exit Do
            End If
            Print "   "; *w
        Loop
        delete_aspell_string_enumeration(elements)
    End If

    ' - Пожаловаться на замену
    'aspell_speller_store_repl(speller, misspelled_word, size,
    '                          correctly_spelled_word, size);

    ' - Добавить в сессию или персональный словарь
    'aspell_speller_add_to_session|personal(speller, word, size)
Loop

delete_aspell_speller(speller)