File indexing completed on 2024-04-28 09:37:09

0001 #! /usr/bin/env perl
0002 
0003 # CORRECTIONS GO IN THE __DATA__ SECTION AT THE END OF THIS SCRIPT
0004 
0005 # Checks and corrects common spelling errors in text files - code
0006 # derived from kde-spellcheck.pl (Dirk Mueller <mueller@kde.org>)
0007 #
0008 # Copyright (c) 2004 Richard Evans <rich@ridas.com>
0009 #
0010 # License: LGPL 2.0
0011 #
0012 # 2004-05-14: Richard Evans <rich@ridas.com>
0013 #
0014 # Initial revision differs from kde-spellcheck.pl as follows:
0015 # 
0016 # Text file detection no longer spawns external program.
0017 # No longer checks cwd if arguments omitted - just specify '.'
0018 # No longer recurses through sub directories without --recurse.
0019 # Can now check internal dictionary for mistakes using aspell.
0020 # Changes are not made unless --make-changes is specified.
0021 # File modification now uses an intermediate file to reduce the
0022 # chance of data loss.
0023 # Fixed bug that missed words with apostrophes.
0024 # Removed the code checking for "nonword misspelling" - I don't
0025 # believe it was doing anything useful, but please correct me
0026 # if that's not the case!
0027 # Corrected some dictionary entries.
0028 # Runs much, much faster.
0029 
0030 sub usage
0031 {
0032   warn <<"EOF";
0033 
0034 kde-spellcheck.pl [flags] filenames/directories
0035 
0036 This script checks for, and optionally replaces, commonly misspelled words
0037 with the correct US English equivalents. The behaviour has changed from
0038 kde-spellcheck.pl - to check subdirectories you must specify --recurse,
0039 omitting arguments does not check the current directory, and changes are
0040 not made to files unless you specify --make-changes
0041 
0042 CAUTION IS NEEDED WHEN USING THIS SCRIPT - changes are made to the original
0043 file and are not programming language syntax aware - this is why the script
0044 only suggests the changes to be made unless --make-changes is specified.
0045 
0046 Hidden files, CVS directories, .desktop, and .moc files are excluded
0047 from checking.
0048 
0049 --check-dictionary    : Checks the internal dictionary for potential
0050                         spelling mistakes - requires aspell with a US
0051                         English dictionary, and Text::Aspell installed.
0052 
0053 --suggest-corrections : Behaves as --check-dictionary, but also suggests
0054                         spelling corrections.
0055 
0056 --recurse             : Check subdirectories recursively.
0057 --quiet               : Disable informational output (not recommended).
0058 --make-changes        : Displays the changes that would have been made.
0059 --help|?              : Display this summary.
0060 
0061 EOF
0062 
0063   exit;
0064 }
0065 
0066 use strict;
0067 use warnings;
0068 use Getopt::Long;
0069 use File::Temp qw( tempfile );
0070 use File::Copy qw( copy );
0071 
0072 my $DICTIONARY = build_dictionary_lookup_table();
0073 
0074 ###########################################################################################
0075 # Add options here as necessary - perldoc Getopt::Long for details on GetOptions
0076 
0077 die "kde-spellcheck2 --help for usage\n"
0078       unless GetOptions ( "check-dictionary"    => \my $opt_check_dictionary,
0079                           "suggest-corrections" => \my $opt_suggest_corrections,
0080                           "quiet"               => \my $opt_quiet,
0081                           "make-changes"        => \my $opt_make_changes,
0082                           "recurse"             => \my $opt_recurse,
0083                           "help|?"              => \&usage );
0084 
0085 check_dictionary($opt_suggest_corrections) if $opt_suggest_corrections or $opt_check_dictionary;
0086 
0087 usage() unless @ARGV;
0088 
0089 require File::MMagic;
0090 
0091 my $MIME = File::MMagic->new;
0092 
0093 my @dirqueue;
0094 
0095 $opt_quiet = 0 unless $opt_make_changes;
0096 
0097 sub info; *info = $opt_quiet ? sub {} : sub { print @_ };
0098 
0099 for ( @ARGV )
0100 {
0101   if    ( -f   ) { check_file($_)     }
0102   elsif ( -d _ ) { push @dirqueue, $_ }
0103   else           { warn "Unknown: '$_' is neither a directory or file" }
0104 }
0105 
0106 my $dir;
0107 
0108 process_directory($dir) while $dir = pop @dirqueue;
0109 
0110 $opt_make_changes or print <<EOF;
0111 
0112 NB No changes have been made to any file. Please check the output to
0113 see if the suggested changes are correct - if so, re-run this script
0114 adding argument --make-changes 
0115 
0116 EOF
0117 
0118 ###########################################################################################
0119 
0120 sub check_file
0121 {
0122   my $filename = shift;
0123   my $fh;
0124 
0125   unless ( open $fh, "<", $filename )
0126   {
0127     warn "Failed to open: '$filename': $!";
0128     return;
0129   }
0130 
0131   my $file_modified = 0;
0132   my @contents      = <$fh>;
0133 
0134   close $fh or warn "Failed to close: '$filename': $!";
0135 
0136   my $original;
0137   my $line_no = 0;
0138             
0139   for ( @contents )
0140   {
0141     $line_no++;
0142     $original = $_ unless $opt_make_changes;
0143                                                                   
0144     for my $word ( split /[^\w']/ )    # \W would split on apostrophe
0145     {
0146       next unless defined (my $correction = $DICTIONARY->{$word});
0147 
0148       $file_modified ||= 1;
0149 
0150       s/\b$word\b/$correction/g;
0151       
0152       info "$filename ($line_no): $word => $correction\n";
0153     }
0154 
0155     print "FROM: $original",
0156           "  TO: $_\n"        if !$opt_make_changes and $_ ne $original;
0157   }
0158 
0159   return unless $file_modified;
0160   return unless $opt_make_changes;
0161 
0162   info "Correcting: $filename\n";
0163 
0164   my ($tmp_fh, $tmp_filename) = tempfile(UNLINK => 0);
0165 
0166   eval
0167   {
0168     print $tmp_fh @contents or die "Write";
0169 
0170     $tmp_fh->flush          or die "Flush";
0171     $tmp_fh->seek(0, 0)     or die "Seek";
0172   };
0173 
0174   die "$@ failed on: '$tmp_filename': $!" if $@;
0175 
0176   copy($tmp_fh, $filename) or die "Failed to copy: $tmp_filename => $filename: $!\n", 
0177                                   "You can manually restore from: $tmp_filename";
0178 
0179   close  $tmp_fh       or warn  "Close failed on: '$tmp_filename': $!";
0180   unlink $tmp_filename or warn "Unlink failed on: '$tmp_filename': $!";
0181 }
0182 
0183 
0184 # Could be more robustly rewitten with File::Find / File::Find::Rules etc
0185 
0186 sub process_directory
0187 {
0188   my $directory = shift;
0189 
0190   info "Processing directory: $directory\n";
0191 
0192   opendir my $dh, $directory or die "Failed to read dir: '$directory': $!";
0193 
0194   while ( my $entry = readdir($dh) )
0195   {
0196     if ( $entry =~ /^\./        or
0197          $entry =~ /\.desktop$/ or
0198          $entry =~ /\.moc$/     or
0199          $entry eq "CVS" )
0200     {
0201       info "Skipping excluded file or directory: $entry\n";
0202       next;
0203     }
0204 
0205     my $file = "$directory/$entry";
0206 
0207     if ( -d $file )
0208     {
0209       push(@dirqueue, $file) if $opt_recurse;
0210       next;
0211     }
0212 
0213     next unless -f _;
0214 
0215     # First use perl's heuristic check to discard files as quickly as possible...
0216 
0217     unless ( -T _ )
0218     {
0219       info "Skipping binary file: $file\n";
0220       next;
0221     }
0222 
0223     # ...it's not always good enough though, so now check the Mimetype
0224 
0225     unless ( (my $type = $MIME->checktype_filename($file)) =~ /text/i )
0226     {
0227       info "Skipping $type file: $file\n";
0228       next;
0229     }
0230 
0231     check_file($file);
0232   }
0233 
0234   closedir $dh or warn "Failed to close dir: '$directory': $!";
0235 }
0236 
0237 
0238 ########################################################################################################
0239 
0240 sub check_dictionary
0241 {
0242   my $suggest_corrections = shift;
0243 
0244   print <<EOF;
0245 
0246 Attempting to check the internal dictionary - you must have aspell
0247 and the perl module Text::Aspell installed for this to succeed,
0248 otherwise the script will fail at this point.
0249 
0250 EOF
0251 
0252   require Text::Aspell;
0253 
0254   my $speller = Text::Aspell->new or die "Failed to create Text::Aspell instance";
0255 
0256   # Despite the docs, set_option doesnt seem to return undef on error ...
0257 
0258   $speller->set_option('lang','en_US')
0259     or die "Text::Aspell failed to select language: 'en_US'", $speller->errstr; 
0260 
0261   # ... so try a very simple check
0262 
0263   unless ( $speller->check('color') )
0264   {
0265     warn "You dont appear to have the en_US dictionary installed - cannot check";
0266     exit;
0267   }
0268 
0269   print "Checking Lexicon for identical misspelling and corrections:\n";
0270 
0271   while ( my($key, $value) = each %$DICTIONARY )
0272   {
0273     print "\n$key" if $key eq $value;
0274   }
0275 
0276   print "\n\nChecking Lexicon for possible misspellings:\n\n";
0277 
0278   for my $word ( values %$DICTIONARY )
0279   {
0280     next if $speller->check($word);
0281 
0282     print "$word\n";
0283     print join(", ", $speller->suggest($word)), "\n\n" if $suggest_corrections;
0284   }
0285 
0286   print "\n";
0287 
0288   exit;
0289 }
0290 
0291 
0292 ########################################################################################################
0293 
0294 sub build_dictionary_lookup_table
0295 {
0296   my %hash;
0297 
0298   while (<DATA>)
0299   {
0300     next if /^\s*$/ or /^\s*#/;   # Skip blank lines and comments
0301 
0302     next unless /^\s*"([^"]+)"\s+(.*)\s*$/ or /^\s*(\S+)\s+(.*)\s*$/;
0303 
0304     if ( $1 eq $2 )
0305     {
0306       warn "WARNING: Ignoring identical misspelling and correction: '$1' in __DATA__ offset line $.\n";
0307       next;
0308     }
0309 
0310     $hash{$1} = $2;
0311   }
0312 
0313   return \%hash;
0314 }
0315 
0316 __DATA__
0317 
0318 #INCORRECT SPELLING    CORRECTION
0319 
0320 aasumes                assumes
0321 abailable              available
0322 Abbrevation            Abbreviation
0323 abbrevations           abbreviations
0324 abbriviate             abbreviate
0325 abbriviation           abbreviation
0326 abilties               abilities
0327 Ablolute               Absolute
0328 abreviate              abbreviate
0329 acces                  access
0330 accesible              accessible
0331 accesing               accessing
0332 accomodate             accommodate
0333 accross                across
0334 Acess                  Access
0335 achive                 achieve
0336 achived                achieved
0337 achiving               achieving
0338 acknoledged            acknowledged
0339 acknowledgement        acknowledgment
0340 Acknowledgements       Acknowledgments
0341 Acknowlege             Acknowledge
0342 acommodate             accommodate
0343 aconyms                acronyms
0344 acording               according
0345 acount                 account
0346 acouting               accounting
0347 activ                  active
0348 actons                 actions
0349 acually                actually
0350 adapater               adapter
0351 adatper                adapter
0352 addded                 added
0353 adddress               address
0354 Additinoally           Additionally
0355 additionaly            additionally
0356 Additionaly            Additionally
0357 additionnal            additional
0358 additonal              additional
0359 
0360 #INCORRECT SPELLING    CORRECTION
0361 
0362 Addtional              Additional
0363 aditional              additional
0364 adminstrator           administrator
0365 Adminstrator           Administrator
0366 adress                 address
0367 Adress                 Address
0368 adressed               addressed
0369 adresses               addresses
0370 advertize              advertise
0371 aesthetic              esthetic
0372 Afganistan             Afghanistan
0373 agressive              aggressive
0374 Agressive              Aggressive
0375 agressively            aggressively
0376 alignement             alignment
0377 alligned               aligned
0378 Allignment             Alignment
0379 allmost                almost
0380 allready               already
0381 allways                always
0382 Allways                Always
0383 alook                  a look
0384 alot                   a lot
0385 alows                  allows
0386 alrady                 already
0387 alreay                 already
0388 alternativly           alternatively
0389 ammount                amount
0390 Ammount                Amount
0391 analagous              analogous
0392 analizer               analyzer
0393 analogue               analog
0394 analyse                analyze
0395 analyses               analyzes
0396 anfer                  after
0397 angainst               against
0398 annoucement            announcement
0399 announcments           announcements
0400 anwer                  answer
0401 anwser                 answer
0402 anwsers                answers
0403 aplication             application
0404 appeareance            appearance
0405 appearence             appearance
0406 appeares               appears
0407 apperarance            appearance
0408 appers                 appears
0409 
0410 #INCORRECT SPELLING    CORRECTION
0411 
0412 applicaiton            application
0413 Applicalble            Applicable
0414 appliction             application
0415 appplication           application
0416 approciated            appreciated
0417 appropiate             appropriate
0418 approriate             appropriate
0419 approximatly           approximately
0420 apropriate             appropriate
0421 aquire                 acquire
0422 aquired                acquired
0423 arbitarily             arbitrarily
0424 arbitary               arbitrary
0425 Arbitary               Arbitrary
0426 aribrary               arbitrary
0427 aribtrarily            arbitrarily
0428 aribtrary              arbitrary
0429 arround                around
0430 assosciated            associated
0431 assosiated             associated
0432 assoziated             associated
0433 asssembler             assembler
0434 assumend               assumed
0435 asume                  assume
0436 asynchonous            asynchronous
0437 asyncronous            asynchronous
0438 aticles                articles
0439 atleast                at least
0440 atomicly               atomically
0441 attatchment            attachment
0442 auhor                  author
0443 authentification       authentication
0444 authoratative          authoritative
0445 authorisations         authorizations
0446 automaticaly           automatically
0447 Automaticaly           Automatically
0448 automaticly            automatically
0449 autoreplacment         autoreplacement
0450 auxilary               auxiliary
0451 Auxilary               Auxiliary
0452 avaible                available
0453 Avaible                Available
0454 availble               available
0455 availibility           availability
0456 availible              available
0457 Availible              Available
0458 avaliable              available
0459 avaluate               evaluate
0460 avare                  aware
0461 aviable                available
0462 backrefences           backreferences
0463 baloon                 balloon
0464 basicly                basically
0465 
0466 #INCORRECT SPELLING    CORRECTION
0467 
0468 Basicly                Basically
0469 beautifull             beautiful
0470 becuase                because
0471 beeep                  beep
0472 beeing                 being
0473 beexported             be exported
0474 befor                  before
0475 beggining              beginning
0476 begining               beginning
0477 behaviour              behavior
0478 Behaviour              Behavior
0479 Belarussian            Belarusian
0480 beteen                 between
0481 betrween               between
0482 betweeen               between
0483 Blueish                Bluish
0484 bofore                 before
0485 botton                 bottom
0486 boudaries              boundaries
0487 boundries              boundaries
0488 boundry                boundary
0489 boxs                   boxes
0490 bruning                burning
0491 buton                  button
0492 Buxfixes               Bugfixes
0493 cacheing               caching
0494 calulation             calculation
0495 cancelation            cancellation
0496 cancelled              canceled
0497 cancelling             canceling
0498 capabilites            capabilities
0499 caracters              characters
0500 cataloge               catalog
0501 Cataloge               Catalog
0502 catalogue              catalog
0503 catched                caught
0504 ceneration             generation
0505 centralised            centralized
0506 centre                 center
0507 Centre                 Center
0508 changable              changeable
0509 chaning                changing
0510 characers              characters
0511 charachters            characters
0512 Characteres            Characters
0513 charakters             characters
0514 charater               character
0515 Chatacter              Character
0516 chatwindow             chat window
0517 childs                 children
0518 choosed                chose
0519 choosen                chosen
0520 Choosen                Chosen
0521 
0522 #INCORRECT SPELLING    CORRECTION
0523 
0524 chosing                choosing
0525 cirumstances           circumstances
0526 classess               classes
0527 cloumn                 column
0528 Coffie                 Coffee
0529 colaboration           collaboration
0530 collecion              collection
0531 collumns               columns
0532 coloum                 column
0533 coloumn                column
0534 colour                 color
0535 colours                colors
0536 colum                  column
0537 comamnd                command
0538 comination             combination
0539 commense               commence
0540 commerical             commercial
0541 comming                coming
0542 commited               committed
0543 commiting              committing
0544 Commiting              Committing
0545 commmand               command
0546 commuication           communication
0547 communcation           communication
0548 compability            compatibility
0549 comparision            comparison
0550 Comparision            Comparison
0551 comparisions           comparisons
0552 Compatability          Compatibility
0553 compatibilty           compatibility
0554 compatiblity           compatibility
0555 Compedium              Compendium
0556 compiiled              compiled
0557 compleion              completion
0558 completly              completely
0559 complient              compliant
0560 comsumer               consumer
0561 comunication           communication
0562 concatonated           concatenated
0563 concurent              concurrent
0564 configration           configuration
0565 Configuraton           Configuration
0566 connent                connect
0567 connnection            connection
0568 consecutivly           consecutively
0569 consequtive            consecutive
0570 constuctors            constructors
0571 contactlist            contact list
0572 containg               containing
0573 contexual              contextual
0574 contigious             contiguous
0575 contingous             contiguous
0576 continouos             continuous
0577 
0578 #INCORRECT SPELLING    CORRECTION
0579 
0580 continous              continuous
0581 Continous              Continuous
0582 contiribute            contribute
0583 contoller              controller
0584 Contorll               Control
0585 controler              controller
0586 controling             controlling
0587 controll               control
0588 conver                 convert
0589 convient               convenient
0590 convinience            convenience
0591 conviniently           conveniently
0592 coordiator             coordinator
0593 Copys                  Copies
0594 coresponding           corresponding
0595 corrent                correct
0596 correponds             corresponds
0597 Costraints             Constraints
0598 Coudn't                Couldn't
0599 coursor                cursor
0600 Coverted               Converted
0601 coypright              copyright
0602 cricles                circles
0603 criticisim             criticism
0604 cryptograhy            cryptography
0605 Culculating            Calculating
0606 curren                 current
0607 currenty               currently
0608 curteousy              courtesy
0609 Custimize              Customize
0610 customisation          customization
0611 customise              customize
0612 Customise              Customize
0613 customised             customized
0614 cutsom                 custom
0615 cutt                   cut
0616 Cutt                   Cut
0617 datas                  data
0618 DCOPCient              DCOPClient
0619 deactive               deactivate
0620 Deamon                 Daemon
0621 debuging               debugging
0622 Debuging               Debugging
0623 decriptor              descriptor
0624 defaul                 default
0625 defered                deferred
0626 Defininition           Definition
0627 defintions             definitions
0628 deleteing              deleting
0629 Demonsrative           Demonstrative
0630 Denstiy                Density
0631 depencies              dependencies
0632 
0633 #INCORRECT SPELLING    CORRECTION
0634 
0635 dependeds              depends
0636 dependend              dependent
0637 dependig               depending
0638 depricated             deprecated
0639 derfined               defined
0640 derivs                 derives
0641 descide                decide
0642 desciptor              descriptor
0643 descryption            description
0644 desctroyed             destroyed
0645 desiabled              disabled
0646 desidered              desired
0647 desination             destination
0648 deskop                 desktop
0649 desription             description
0650 Desription             Description
0651 destiantion            destination
0652 determiend             determined
0653 determins              determines
0654 detremines             determines
0655 develloped             developed
0656 developerss            developers
0657 developped             developed
0658 devided                divided
0659 devide                 divide
0660 diabled                disabled
0661 diable                 disable
0662 diaglostic             diagnostic
0663 dialag                 dialog
0664 dialler                dialer
0665 Dialler                Dialer
0666 dialling               dialing
0667 Dialling               Dialing
0668 dialogue               dialog
0669 diaog                  dialog
0670 didnt                  didn't
0671 diffcult               difficult
0672 differenciate          differentiate
0673 differenly             differently
0674 Differntiates          Differentiates
0675 dificulty              difficulty
0676 Difusion               Diffusion
0677 digitised              digitized
0678 diplayed               displayed
0679 dirctely               directly
0680 dirctory               directory
0681 direcory               directory
0682 directorys             directories
0683 directoy               directory
0684 disactivate            deactivate
0685 disappers              disappears
0686 Disbale                Disable
0687 
0688 #INCORRECT SPELLING    CORRECTION
0689 
0690 discontigous           discontiguous
0691 discpline              discipline
0692 discription            description
0693 disppear               disappear
0694 dissassembler          disassembler
0695 distingush             distinguish
0696 distribtuion           distribution
0697 distrubutor            distributor
0698 divizor                divisor
0699 docucument             document
0700 documentaiton          documentation
0701 documentors            documenters
0702 doens't                doesn't
0703 doesnt                 doesn't
0704 donnot                 do not
0705 Donot                  Do not
0706 dont                   don't
0707 dont't                 don't
0708 Dou                    Do
0709 draging                dragging
0710 dreamt                 dreamed
0711 Droped                 Dropped
0712 duotes                 quotes
0713 durring                during
0714 dynamicly              dynamically
0715 eallocate              deallocate
0716 eample                 example
0717 editory                editor
0718 efficent               efficient
0719 efficently             efficiently
0720 effiency               efficiency
0721 embedabble             embeddable
0722 embedable              embeddable
0723 embeddabble            embeddable
0724 embeded                embedded
0725 emcompass              encompass
0726 emty                   empty
0727 encyption              encryption
0728 enhandcements          enhancements
0729 enles                  endless
0730 enought                enough
0731 entitities             entities
0732 entrys                 entries
0733 Entrys                 Entries
0734 enumarated             enumerated
0735 envirnment             environment
0736 envirnoment            environment
0737 enviroment             environment
0738 environemnt            environment
0739 environent             environment
0740 Equador                Ecuador
0741 equiped                equipped
0742 equlas                 equals
0743 
0744 #INCORRECT SPELLING    CORRECTION
0745 
0746 errorous               erroneous
0747 errror                 error
0748 escriptor              descriptor
0749 espacially             especially
0750 espesially             especially
0751 Evalute                Evaluate
0752 everytime              every time
0753 exacly                 exactly
0754 exapmle                example
0755 excecpt                except
0756 execeeded              exceeded
0757 execess                excess
0758 exection               execution
0759 execuable              executable
0760 executeble             executable
0761 exept                  except
0762 exisiting              existing
0763 existance              existence
0764 exlusively             exclusively
0765 exmaple                example
0766 experienceing          experiencing
0767 explicitely            explicitly
0768 explicity              explicitly
0769 explit                 explicit
0770 Expresion              Expression
0771 expresions             expressions
0772 extented               extended
0773 extention              extension
0774 Extention              Extension
0775 extentions             extensions
0776 extesion               extension
0777 fabilous               fabulous
0778 falg                   flag
0779 familar                familiar
0780 fastes                 fastest
0781 favourable             favorable
0782 favour                 favor
0783 favourite              favorite
0784 favours                favors
0785 featue                 feature
0786 feeded                 fed
0787 filsystem              filesystem
0788 firware                firmware
0789 fisrt                  first
0790 fixiated               fixated
0791 fixiate                fixate
0792 fixiating              fixating
0793 flaged                 flagged
0794 flavours               flavors
0795 focussed               focused
0796 folllowed              followed
0797 follwing               following
0798 folowing               following
0799 
0800 #INCORRECT SPELLING    CORRECTION
0801 
0802 Folowing               Following
0803 footnotexs             footnotes
0804 formaly                formally
0805 fortunatly             fortunately
0806 foward                 forward
0807 fragement              fragment
0808 framesyle              framestyle
0809 framset                frameset
0810 fucntion               function
0811 Fucntion               Function
0812 fuction                function
0813 fuctions               functions
0814 fufill                 fulfill
0815 fulfiling              fulfilling
0816 fullfilled             fulfilled
0817 funcion                function
0818 funciton               function
0819 functin                function
0820 funtional              functional
0821 funtionality           functionality
0822 funtion                function
0823 funtions               functions
0824 furthur                further
0825 gaalxies               galaxies
0826 Gamee                  Game
0827 gernerated             generated
0828 ges                    goes
0829 Ghostscipt             Ghostscript
0830 giude                  guide
0831 globaly                globally
0832 goind                  going
0833 Gostscript             Ghostscript
0834 grapphis               graphics
0835 greyed                 grayed
0836 guaranted              guaranteed
0837 guarenteed             guaranteed
0838 guarrantee             guarantee
0839 gziped                 gzipped
0840 handeling              handling
0841 harware                hardware
0842 Harware                Hardware
0843 hasnt                  hasn't
0844 havn't                 haven't
0845 heigt                  height
0846 heigth                 height
0847 hiddden                hidden
0848 Hierachical            Hierarchical
0849 highlighlighted        highlighted
0850 highligting            highlighting
0851 Higlighting            Highlighting
0852 honour                 honor
0853 honouring              honoring
0854 
0855 #INCORRECT SPELLING    CORRECTION
0856 
0857 honours                honors
0858 horziontal             horizontal
0859 hypens                 hyphens
0860 hysical                physical
0861 iconized               iconified
0862 illumnating            illuminating
0863 imaginery              imaginary
0864 i'm                    I'm
0865 imitatation            imitation
0866 immedialely            immediately
0867 immediatly             immediately
0868 imortant               important
0869 imperical              empirical
0870 implemantation         implementation
0871 implemenation          implementation
0872 implenetation          implementation
0873 implimention           implementation
0874 implmentation          implementation
0875 inactiv                inactive
0876 incldue                include
0877 incomming              incoming
0878 Incomming              Incoming
0879 incovenient            inconvenient
0880 indeces                indices
0881 indentical             identical
0882 Indentification        Identification
0883 indepedancy            independency
0884 independant            independent
0885 independend            independent
0886 indetectable           undetectable
0887 indicdate              indicate
0888 indice                 index
0889 indictes               indicates
0890 infinitv               infinitive
0891 infomation             information
0892 informaion             information
0893 informatation          information
0894 informationon          information
0895 informations           information
0896 Inifity                Infinity
0897 inital                 initial
0898 initalization          initialization
0899 initalized             initialized
0900 initalize              initialize
0901 Initalize              Initialize
0902 initialisation         initialization
0903 initialise             initialize
0904 initialising           initializing
0905 Initialyze             Initialize
0906 Initilialyze           Initialize
0907 initilization          initialization
0908 initilize              initialize
0909 
0910 #INCORRECT SPELLING    CORRECTION
0911 
0912 Initilize              Initialize
0913 innacurate             inaccurate
0914 innacurately           inaccurately
0915 insde                  inside
0916 inteface               interface
0917 interactivelly         interactively
0918 interfer               interfere
0919 interfrace             interface
0920 interisting            interesting
0921 internationalisation   internationalization
0922 interrrupt             interrupt
0923 interrumped            interrupted
0924 interrups              interrupts
0925 Interupt               Interrupt
0926 intervall              interval
0927 intervalls             intervals
0928 intiailize             initialize
0929 Intial                 Initial
0930 intialisation          initialization
0931 intialization          initialization
0932 intialize              initialize
0933 Intialize              Initialize
0934 intializing            initializing
0935 introdutionary         introductory
0936 introdution            introduction
0937 intrrupt               interrupt
0938 intruction             instruction
0939 invarient              invariant
0940 invokation             invocation
0941 Ionisation             Ionization
0942 irrevesible            irreversible
0943 isntance               instance
0944 is'nt                  isn't
0945 issueing               issuing
0946 istory                 history
0947 Iterface               Interface
0948 itselfs                itself
0949 journalised            journalized
0950 judgement              judgment
0951 kdelbase               kdebase
0952 keyboad                keyboard
0953 klicking               clicking
0954 knowlege               knowledge
0955 Konquerer              Konqueror
0956 konstants              constants
0957 kscreensave            kscreensaver
0958 labelling              labeling
0959 Labelling              Labeling
0960 lauching               launching
0961 layed                  laid
0962 learnt                 learned
0963 leats                  least
0964 lenght                 length
0965 
0966 #INCORRECT SPELLING    CORRECTION
0967 
0968 Lenght                 Length
0969 Licenced               Licensed
0970 licence                license
0971 Licence                License
0972 Licens                 License
0973 liset                  list
0974 listenening            listening
0975 listveiw               listview
0976 litle                  little
0977 litteral               literal
0978 localisation           localization
0979 losely                 loosely
0980 maanged                managed
0981 maching                matching
0982 magnication            magnification
0983 magnifcation           magnification
0984 mailboxs               mailboxes
0985 maillinglists          mailinglists
0986 maintainance           maintenance
0987 maintainence           maintenance
0988 Malicous               Malicious
0989 mamage                 manage
0990 managment              management
0991 Managment              Management
0992 manangement            management
0993 mannually              manually
0994 Mantainer              Maintainer
0995 manupulation           manipulation
0996 marbels                marbles
0997 matchs                 matches
0998 maximimum              maximum
0999 Maxium                 Maximum
1000 mdification            modification
1001 mdified                modified
1002 menues                 menus
1003 mesages                messages
1004 messanger              messenger
1005 messanging             messaging
1006 Microsft               Microsoft
1007 millimetres            millimeters
1008 mimimum                minimum
1009 minimise               minimize
1010 minimising             minimizing
1011 Minimun                Minimum
1012 Minium                 Minimum
1013 minumum                minimum
1014 miscelaneous           miscellaneous
1015 miscelanous            miscellaneous
1016 miscellaneaous         miscellaneous
1017 miscellanous           miscellaneous
1018 Miscellanous           Miscellaneous
1019 mispeled               misspelled
1020 mispelled              misspelled
1021 
1022 #INCORRECT SPELLING    CORRECTION
1023 
1024 mistery                mystery
1025 Modifes                Modifies
1026 modifing               modifying
1027 modul                  module
1028 mosue                  mouse
1029 Mozzila                Mozilla
1030 mssing                 missing
1031 Mulitimedia            Multimedia
1032 mulitple               multiple
1033 multible               multiple
1034 multipe                multiple
1035 multy                  multi
1036 mutiple                multiple
1037 neccesary              necessary
1038 neccessary             necessary
1039 necessery              necessary
1040 nedd                   need
1041 neet                   need
1042 negativ                negative
1043 negociated             negotiated
1044 negociation            negotiation
1045 neighbourhood          neighborhood
1046 neighbour              neighbor
1047 Neighbour              Neighbor
1048 neighbours             neighbors
1049 neogtiation            negotiation
1050 nessecarry             necessary
1051 nessecary              necessary
1052 nessesary              necessary
1053 nework                 network
1054 newtork                network
1055 nickanme               nickname
1056 nonexistant            nonexistent
1057 noone                  nobody
1058 Noone                  No-one
1059 normalisation          normalization
1060 noticable              noticeable
1061 nucleous               nucleus
1062 obtail                 obtain
1063 occoured               occurred
1064 occouring              occurring
1065 occurance              occurrence
1066 occurances             occurrences
1067 occured                occurred
1068 occurence              occurrence
1069 occurences             occurrences
1070 occure                 occur
1071 occuring               occurring
1072 occurrance             occurrence
1073 occurrances            occurrences
1074 ocupied                occupied
1075 offical                official
1076 ommited                omitted
1077 
1078 #INCORRECT SPELLING    CORRECTION
1079 
1080 onthe                  on the
1081 opend                  opened
1082 optimisation           optimization
1083 optionnal              optional
1084 orangeish              orangish
1085 organisational         organizational
1086 organisation           organization
1087 Organisation           Organization
1088 organisations          organizations
1089 organised              organized
1090 organise               organize
1091 organiser              organizer
1092 organising             organizing
1093 Organising             Organizing
1094 orginate               originate
1095 Originaly              Originally
1096 orignal                original
1097 oscilating             oscillating
1098 otehr                  other
1099 ouput                  output
1100 outputing              outputting
1101 overidden              overridden
1102 overriden              overridden
1103 overriden              overridden
1104 ownes                  owns
1105 pakage                 package
1106 panelised              panelized
1107 paramaters             parameters
1108 parametres             parameters
1109 parametrize            parameterize
1110 paramter               parameter
1111 paramters              parameters
1112 particip               participle
1113 particularily          particularly
1114 paticular              particular
1115 Pendings               Pending
1116 percetages             percentages
1117 Perfomance             Performance
1118 performace             performance
1119 Periferial             Peripheral
1120 permision              permission
1121 permisions             permissions
1122 permissable            permissible
1123 Personalizsation       Personalization
1124 perticularly           particularly
1125 phyiscal               physical
1126 plaforms               platforms
1127 plese                  please
1128 politness              politeness
1129 posibilities           possibilities
1130 posibility             possibility
1131 
1132 #INCORRECT SPELLING    CORRECTION
1133 
1134 posible                possible
1135 positon                position
1136 possebilities          possibilities
1137 possebility            possibility
1138 possibilty             possibility
1139 possiblity             possibility
1140 posssibility           possibility
1141 potentally             potentially
1142 practise               practice
1143 practising             practicing
1144 preceeded              preceded
1145 preceeding             preceding
1146 precison               precision
1147 preemphasised          preemphasized
1148 Preemphasised          Preemphasized
1149 prefered               preferred
1150 Prefered               Preferred
1151 preferrable            preferable
1152 prefiously             previously
1153 preformance            performance
1154 prerequisits           prerequisites
1155 presense               presence
1156 pressentation          presentation
1157 prgramm                program
1158 Prining                Printing
1159 priveleges             privileges
1160 priviledge             privilege
1161 priviledges            privileges
1162 priviliges             privileges
1163 probatility            probability
1164 probelm                problem
1165 proberly               properly
1166 problmes               problems
1167 proceedure             procedure
1168 proctection            protection
1169 proecss                process
1170 progess                progress
1171 programing             programming
1172 programme              program
1173 programm               program
1174 promille               per mill
1175 promiscous             promiscuous
1176 promped                prompted
1177 pronounciation         pronunciation
1178 Pronounciation         Pronunciation
1179 pronunce               pronounce
1180 pronunciated           pronounced
1181 properies              properties
1182 Propertites            Properties
1183 Propogate              Propagate
1184 protoypes              prototypes
1185 
1186 #INCORRECT SPELLING    CORRECTION
1187 
1188 Proxys                 Proxies
1189 psuedo                 pseudo
1190 Psuedo                 Pseudo
1191 pult                   desk
1192 purposees              purposes
1193 quatna                 quanta
1194 queing                 queuing
1195 querys                 queries
1196 queueing               queuing
1197 Queueing               Queuing
1198 quiten                 quiet
1199 quiting                quitting
1200 readony                readonly
1201 realise                realize
1202 realy                  really
1203 REAMDE                 README
1204 reasonnable            reasonable
1205 receieve               receive
1206 recepeient             recipient
1207 recepient              recipient
1208 recevie                receive
1209 recevie                receive
1210 receving               receiving
1211 recieved               received
1212 recieve                receive
1213 Recieve                Receive
1214 reciever               receiver
1215 recieves               receives
1216 Recieves               Receives
1217 recives                receives
1218 recognised             recognized
1219 recognise              recognize
1220 recognises             recognizes
1221 recomended             recommended
1222 recommanded            recommended
1223 recommand              recommend
1224 recommented            recommended
1225 redialling             redialing
1226 reets                  resets
1227 refered                referred
1228 Refering               Referring
1229 Refeshes               Refreshes
1230 refreshs               refreshes
1231 regarless              regardless
1232 registaration          registration
1233 registred              registered
1234 Regsiter               Register
1235 regulare               regular
1236 regularily             regularly
1237 Reigster               Register
1238 reimplemenations       reimplementations
1239 
1240 #INCORRECT SPELLING    CORRECTION
1241 
1242 Reimplemenations       Reimplementations
1243 releated               related
1244 relection              reselection
1245 relevent               relevant
1246 relocateable           relocatable
1247 remaing                remaining
1248 remeber                remember
1249 remebers               remembers
1250 remotley               remotely
1251 renderes               renders
1252 renewd                 renewed
1253 reorienting            reorientating
1254 Repalcement            Replacement
1255 replys                 replies
1256 reponsibility          responsibility
1257 requeusts              requests
1258 resently               recently
1259 resetted               reset
1260 resistent              resistant
1261 resognized             recognized
1262 resonable              reasonable
1263 resoure                resource
1264 responsability         responsibility
1265 responsivness          responsiveness
1266 resposible             responsible
1267 ressources             resources
1268 retreived              retrieved
1269 retreive               retrieve
1270 retults                results
1271 Rewritebles            Rewritables
1272 richt                  right
1273 rigths                 rights
1274 Rigt                   Right
1275 saftey                 safety
1276 satified               satisfied
1277 savely                 safely
1278 savety                 safety
1279 scalled                scaled
1280 scather                scatter
1281 scenerio               scenario
1282 sceptical              skeptical
1283 schduler               scheduler
1284 Sectionning            Sectioning
1285 selction               selection
1286 selectde               selected
1287 sensistve              sensitive
1288 separed                separated
1289 separeted              separated
1290 sepcified              specified
1291 seperated              separated
1292 seperately             separately
1293 seperate               separate
1294 seperate               separate
1295 
1296 #INCORRECT SPELLING    CORRECTION
1297 
1298 Seperate               Separate
1299 seperation             separation
1300 seperatly              separately
1301 seperator              separator
1302 sequencially           sequentially
1303 sertificate            certificate
1304 serveral               several
1305 setted                 set
1306 sheduled               scheduled
1307 sheme                  scheme
1308 shorctuts              shortcuts
1309 shoud                  should
1310 shouldnt               shouldn't
1311 Shouldnt               Shouldn't
1312 shure                  sure
1313 Similarily             Similarly
1314 Similiarly             Similarly
1315 similiar               similar
1316 simlar                 similar
1317 simpliest              simplest
1318 simultaneuosly         simultaneously
1319 skript                 script
1320 slewin                 slewing
1321 smaple                 sample
1322 Sombody                Somebody
1323 somehwat               somewhat
1324 soure                  source
1325 sparcely               sparsely
1326 speakiing              speaking
1327 specefied              specified
1328 specfic                specific
1329 specfied               specified
1330 specialised            specialized
1331 specifc                specific
1332 specifed               specified
1333 Specificiation         Specification
1334 specifieing            specifying
1335 specifing              specifying
1336 specifiy               specify
1337 Specifiy               Specify
1338 speficied              specified
1339 speling                spelling
1340 spezifying             specifying
1341 sprectrum              spectrum
1342 standar                standard
1343 Startp                 Startup
1344 Statfeul               Stateful
1345 statfull               stateful
1346 storeys                storys
1347 straighforward         straightforward
1348 streched               stretched
1349 Streches               Stretches
1350 Strech                 Stretch
1351 
1352 #INCORRECT SPELLING    CORRECTION
1353 
1354 Striked                Stroked
1355 stuctures              structures
1356 styleshets             stylesheets
1357 subcribed              subscribed
1358 subdirectorys          subdirectories
1359 subseqently            subsequently
1360 Substracting           Subtracting
1361 subystem               subsystem
1362 succeded               succeeded
1363 succesfully            successfully
1364 succesful              successful
1365 succesive              successive
1366 succesor               successor
1367 successfull            successful
1368 sucessfull             successful
1369 sucessfully            successfully
1370 sucessfuly             successfully
1371 sucess                 success
1372 sufficent              sufficient
1373 superflous             superfluous
1374 supossed               supposed
1375 supressed              suppressed
1376 supress                suppress
1377 suprised               surprised
1378 susbstitute            substitute
1379 swaped                 swapped
1380 synchonization         synchronization
1381 synchronisation        synchronization
1382 Synchronisation        Synchronization
1383 synchronised           synchronized
1384 synchronises           synchronizes
1385 synchronise            synchronize
1386 synchronyze            synchronize
1387 Syncronization         Synchronization
1388 syncronized            synchronized
1389 Syncronizes            Synchronizes
1390 syncronize             synchronize
1391 syncronizing           synchronizing
1392 Syncronizing           Synchronizing
1393 syncronous             synchronous
1394 syncrounous            synchronous
1395 syndrom                syndrome
1396 syntex                 syntax
1397 synthetizer            synthesizer
1398 syntheziser            synthesizer
1399 sytem                  system
1400 talbs                  tables
1401 talse                  false
1402 tecnology              technology
1403 temparary              temporary
1404 Tempertures            Temperatures
1405 terminatin             terminating
1406 
1407 #INCORRECT SPELLING    CORRECTION
1408 
1409 texured                textured
1410 themc                  them
1411 thet                   that
1412 threshholds            thresholds
1413 threshhold             threshold
1414 throtte                throttle
1415 throught               through
1416 throuth                through
1417 tiggered               triggered
1418 tihs                   this
1419 timditiy               timidity
1420 Timdity                Timidity
1421 timming                timing
1422 tranceiver             transceiver
1423 Tranfers               Transfers
1424 tranfer                transfer
1425 Tranlate               Translate
1426 tranlation             translation
1427 transalted             translated
1428 transation             transaction
1429 transfering            transferring
1430 transferrable          transferable
1431 transmiter             transmitter
1432 transmiting            transmitting
1433 transmition            transmission
1434 transmittion           transmission
1435 transparancy           transparency
1436 transparant            transparent
1437 trasfered              transferred
1438 traveller              traveler
1439 travelling             traveling
1440 triggerg               triggering
1441 triggerred             triggered
1442 truely                 truly
1443 trys                   tries
1444 uglyness               ugliness
1445 unabiguous             unambiguous
1446 unaccesible            unaccessible
1447 unallowed              disallowed
1448 unamed                 unnamed
1449 unathorized            unauthorized
1450 uncrypted              unencrypted
1451 Uncutt                 Uncut
1452 underlieing            underlying
1453 underrrun              underrun
1454 undesireable           undesirable
1455 undestood              understood
1456 Undexpected            Unexpected
1457 undoedne               undid
1458 unecessary             unnecessary
1459 unexperienced          inexperienced
1460 unexperience           inexperience
1461 unfortunatly           unfortunately
1462 
1463 #INCORRECT SPELLING    CORRECTION
1464 
1465 Unfortunatly           Unfortunately
1466 uniq                   unique
1467 unitialized            uninitialized
1468 unkown                 unknown
1469 Unmoveable             Unmovable
1470 unneccessary           unnecessary
1471 unneccessay            unnecessary
1472 unsellectected         unselected
1473 unsuccesful            unsuccessful
1474 unuseable              unusable
1475 unusuable              unusable
1476 unvailable             unavailable
1477 uploades               uploads
1478 upppercase             uppercase
1479 usally                 usually
1480 usefull                useful
1481 usere                  user
1482 usuable                usable
1483 usuallly               usually
1484 Usualy                 Usually
1485 utilisation            utilization
1486 vaild                  valid
1487 valied                 valid
1488 valueable              valuable
1489 varb                   verb
1490 vays                   ways
1491 verfication            verification
1492 verically              vertically
1493 versins                versions
1494 verticaly              vertically
1495 verticies              vertices
1496 Veryify                Verify
1497 vicitim                victim
1498 visualisations         visualizations
1499 visualisation          visualization
1500 Visualisation          Visualization
1501 visualise              visualize
1502 visul                  visual
1503 volonteer              volunteer
1504 Volumen                Volume
1505 Voribis                Vorbis
1506 vrtual                 virtual
1507 waranty                warranty
1508 watseful               wasteful
1509 weigth                 weight
1510 wheter                 whether
1511 whicn                  which
1512 whishes                wishes
1513 whitch                 which
1514 whith                  with
1515 
1516 #INCORRECT SPELLING    CORRECTION
1517 
1518 Wiazrd                 Wizard
1519 wich                   which
1520 wich                   which
1521 wierd                  weird
1522 wieving                viewing
1523 wiev                   view
1524 wih                    with
1525 willl                  will
1526 wnat                   want
1527 workimg                working
1528 workstatio             workstation
1529 woud                   would
1530 wouldd                 would
1531 writting               writing
1532 Writting               Writing
1533 yeld                   yield
1534 yorself                yourself
1535 you'ld                 you would
1536 yourContryCode         yourCountryCode
1537