BIBFRAME does not require 3 character language codes. URIs are available for ISO 639-1 (2-character codes) and 639-2 (3-character codes). URIs are in the works for ISO 639-3 (a larger list of languages which also encompasses much of 639-2). 
See:

It is neutral on which code list you use. Any examples that show 3-character codes may be transformations from MARC language codes, which are equivalent to the ISO 639-2/B list.
Note that there are a limited number of languages that have 2-character codes; BCP47 (http://tools.ietf.org/html/bcp47) specifies how to combine the various language code lists.

Rebecca

Rebecca Squire Guenther
Library of Congress
Network Development & MARC Standards Office





On Jun 30, 2014, at 3:53 PM, Stuart Yeates wrote:

On 07/01/2014 05:41 AM, Mark K. Ehlert wrote:
Stuart Yeates <[log in to unmask] <mailto:[log in to unmask]>>
wrote:

   My biggest issue (that's not covered in the doc, but which I've
   already fed to the doc's authors) is that BIBFRAME mandates
   three-letter language codes, where available, while core RDA
   mandates two-letter language codes, where available.

Sorry, there are at least two separate errors in that.

Correction: Every example I've ever seen using BIBFRAME and language codes uses three-letter codes without any discussion of the interoperability implications with every other thing in the RDF universe that I've seen that uses two letter codes.

cheers
stuart

To my knowledge, RDA has no such instruction.  There is RDA 7.13.2
(Script), where we're told to "expression the language content of the
resource using one or more of the terms from ISO 15924..." (mentioned
also under 0.12).

There's also LC-PCC PS 7.12.1.3, which points to the MARC language code
list for terms rather than codes:
<http://access.rdatoolkit.org/document.php?id=lcpschp7&target=lcps7-145#lcps7-145>