
http://www.google.com/language_tools, flags are used adequately to indicate countries,
whereas the choice of language is by language name.
The most logical method for selection between versions of documentation in different
languages—for example, in a document that acts as an entry page only—would be to
use the name of each language in the language itself. Of course, this often requires a
rich repertoire of characters. It also raises the problem that people get confused with
the mixture of languages, especially if they see “strange characters” and cannot easily
figure out what the information is about. Ordering the languages is difficult too; often
they are ordered by the ISO 639 code.
Language Tags in Unicode
There are special characters for language tagging in Unicode, but their use is strongly
discouraged, in general. Language tag characters are control characters that contain
metadata about text. They are invisible, although they may indirectly affect the ren-
dering of normal characters. They are meant for use in plain text (as opposed to HTML
or XML, for example) and in special circumstances only.
The block Tags, U+E0000..U+E007F, is used for the purpose. It contains clones of
ASCII characters, defined as invisible tag characters and used to indicate language using
language codes such as “en” or “en-US.” For example, to indicate that subsequent text
is in English, you would use the two