3-character language tags are specified in RFC 3066
("http://www.ietf.org/rfc/rfc3066.txt"). This document gives also an advice
on how to proceed in when different tags are applicable:
>2.3 Choice of language tag
> One may occasionally be faced with several possible tags for the same
> body of text.
> Interoperability is best served if all users send the same tag, and
> use the same tag for the same language for all documents. If an
> application has requirements that make the rules here inapplicable,
> the application protocol specification MUST specify how the procedure
> varies from the one given here.
> The text below is based on the set of tags known to the tagging
> 1. Use the most precise tagging known to the sender that can be
> ascertained and is useful within the application context.
> 2. When a language has both an ISO 639-1 2-character code and an ISO
> 639-2 3-character code, you MUST use the tag derived from the ISO
> 639-1 2-character code.
> 3. When a language has no ISO 639-1 2-character code, and the ISO
> 639-2/T (Terminology) code and the ISO 639-2/B (Bibliographic)
> code differ, you MUST use the Terminology code. NOTE: At present,
> all languages for which there is a difference have 2-character
> codes, and the displeasure of developers about the existence of 2
> code sets has been adequately communicated to ISO. So this
> situation will hopefully not arise.
> 4. When a language has both an IANA-registered tag (i-something) and
> a tag derived from an ISO registered code, you MUST use the ISO
> tag. NOTE: When such a situation is discovered, the IANA-
> registered tag SHOULD be deprecated as soon as possible.
> 5. You SHOULD NOT use the UND (Undetermined) code unless the protocol
> in use forces you to give a value for the language tag, even if
> the language is unknown. Omitting the tag is preferred.
> 6. You SHOULD NOT use the MUL (Multiple) tag if the protocol allows
> you to use multiple languages, as is the case for the Content-
> Language: header.