The diagram displays the steps that Apertium takes to translate a source-language text (the text we want to translate) into a target-language text (the translated text). Source language text is passed into Apertium for translation. The deformatter removes formatting markup (HTML, RTF, etc.) that should be kept in place but not translated. The morphological analyser segments the text (expanding elisions, marking set phrases, etc.), and look up segments in the language dictionaries, then returning baseform and tags for all matches. In pairs that involve agglutinative morphology, including a number of Turkic languages, a Helsinki Finite-State Transducer (HFST) is used. Otherwise, an Apertium-specific technology, called the lttoolbox, is used. The morphological disambiguator (the morphological analyser and the morphological disambiguator together form the part of speech tagger) resolves ambiguous segments (i.e., when there is more than one match) by choosing one match. Apertium is working on installing more Constraint Grammar frameworks for its language pairs, allowing the imposition of more fine-grained constraints than would be otherwise possible. Apertium uses the Visual Interactive Syntax Learning Constraint Grammar Parser. Lexical transfer looks up disambiguated source-language basewords to find their target-language equivalents (i.e., mapping source language to target language). For lexical transfer, Apertium uses an XML-based dictionary format called bidix. Lexical selection chooses between alternative translations when the source text word has alternative meanings. Apertium uses a specific XML-based technology, apertium-lex-tools, to perform lexical selection. Structural transfer (i.e., it is an XML format that allows writing complex structural transfer rules) can consist of a one-step transfer or a three-step transfer module. It flags grammatical differences between the source language and target language (e.g. gender or number agreement) by creating a sequence of chunks containing markers for this. It then reorders or modifies chunks in order to produce a grammatical translation in the target-language. This is also done using lttoolbox. The morphological generator uses the tags to deliver the correct target language surface form. The morphological generator is a morphological transducer, just like the morphological analyser. A morphological transducer both analyses and generates forms. The post-generator makes any necessary orthographic changes due to the contact of words (e.g. elisions). The reformatter replaces formatting markup (HTML, RTF, etc.) that was removed by the deformatter in the first step. Apertium delivers the target-language translation. Language pairs List of currently stable language pairs, hover over the language codes to see the languages that they represent. See also Babel Fish