Following is a list of challenges one has to face when attempt to do machine translation.
Not all the words in one language have equivalent words in another language. In some cases a word in one language is to be expressed by group of words in another.
Two given languages may have completely different structures. For example English has SVO structure while Tamil has SOV structure.
Sometimes there is a lack of one-to-one correspondence of parts of speech between two languages. For example, color terms of Tamil are nouns whereas in English they are adjectives.
The way sentences are put together also differ among languages.
Words can have more than one meaning and sometimes group of words or whole sentence may have more than one meaning in a language. This problem is called ambiguity.
Not all the translation problems can be solved by applying values of grammar.
It is too difficult for the software programs to predict meaning.
Translation requires not only vocabulary and grammar but also knowledge gathered from past experience.
The programmer should understand the rules under which complex human language operates and how the mechanism of this operation can be simulated by automatic means.
The simulation of human language behavior by automatic means is almost impossible to achieve as the language is open and dynamic system in constant change. More importantly the system is not yet completely understood.