The
Mountain West Digital Library Dublin Core Application Profile, Version 2.0 (20 July 2011) stipulates the use of
ISO 639-3 three letter codes.
ISO 639-3 Codes for the representation of names of languages, part 3 is a code that aims to define three-letter identifiers for all known human languages. At the core of ISO 639-3 are the individual languages already accounted for in ISO 639-2. See the ISO 639-3
List of terms.
The
W3C says that "language tag syntax is defined by the IETF's
BCP 47. BCP stands for
'Best Current Practice', and is a persistent name for a series of RFCs whose numbers change as they are updated." The latest RFC for language tag syntax is
RFC5646, "Tags for Identifying Languages.". RFC5646 replaces RFC4646 which obsoleted RFC3066 which, in turn, replaced RFC1766.
BCP 47 combines RFC5646 and
RFC4647 ("Matching of Language Tags"), obsoletes RFC3066, and gives guidance for the use of
ISO 639-3 "Codes for the Representation of Names of Languages--Part 3: Alpha-3 code, ISO 639-3. This code aims to define three-letter identifiers for all known human languages. At the core of ISO 639-3 are the individual languages already accounted for in ISO 639-2.
All language subtags are found in the comprehensive
IANA Language Subtag Registry. These are all the subtags valid in language tags allowing implementers a straightforward and reliable way to validate language tags. Subtags are often followed by a two-letter or three-digit region subtag. RFC 5646 also allows for a number of additional subtags, where needed. A helpful tool to use it the
Language Subtag Lookup.
The golden rule when creating language tags is to keep the tag as short as possible. Avoid region, script or other subtags except where they add useful distinguishing information. For example, using en-US or en-GB is useful for spell checking purposes and en-Brai distinguishes an item in Braille.
For publications with multiple languages, use separate language fields or list all in a single field, separating each with a semicolon and a space.
encoding-scheme; scheme=RFC5646
The MARC mapping is from 041 0# subfield a (language code); 008/35-37.
See the
"IETF language tag" Wikipedia article for further information.