How does the system decide if its a typo vs wrong?
Many times I will get an error "Almost correct" and other times it will be marked wrong. This occurs in any language I'm working on.
many times I have transposed 2 letters - like "ie" and "ei"
in the middle of a word, there are times it says I just have a spelling error / typo and others where it marks it completely wrong.
It also has this reaction when missing a letter in a word, I would like to know how it decides between typo and completely wrong since it doesn't seem to be consistent to me.
A difference of one letter in a word is treated as a typo UNLESS this produces a valid word.
For example, if you were expected to type mangia but typed mangiu that would be treated as a typo, but if you typed mangio then this would be marked as incorrect. (I am using Italian in this example but it may be similar in Spanish).
lol That's not exactly English its French being used by English speakers
English tends to borrow words from many languages, sometimes integrating them and modifying meaning.
I would be good for the typo handler to take the words of the lesson into account. aka the vocabulary of the learner
But it is still accepted in an English dictionary.
Don't forget, after the Normans invaded England in 1066 French was the lingua franca among the barons and land owners. In fact. King Richard I (the Lion Heart) did not speak a word of English.
There are many French names and words which are still in everyday use in English.
That may be true. There are lots of things learners do not understand. Thats why they are called learners. We all make some silly errors like ie and ei and we humans are very good at recognising this and making allowances for them. Unfortunately computers are less capable of making those decisions, pseudo intelligence has to be programmed to cover all possible exceptions and that could be very complex.