<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en"><head><title>BCP 47 Extension T - Transformed Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="BCP 47 Extension T - Transformed Content">
<meta name="keywords" content="locale, bcp 47">
<meta name="generator" content="xml2rfc v1.36 (http://xml.resource.org/)">
<style type='text/css'><!--
        body {
                font-family: verdana, charcoal, helvetica, arial, sans-serif;
                font-size: small; color: #000; background-color: #FFF;
                margin: 2em;
        }
        h1, h2, h3, h4, h5, h6 {
                font-family: helvetica, monaco, "MS Sans Serif", arial, sans-serif;
                font-weight: bold; font-style: normal;
        }
        h1 { color: #900; background-color: transparent; text-align: right; }
        h3 { color: #333; background-color: transparent; }

        td.RFCbug {
                font-size: x-small; text-decoration: none;
                width: 30px; height: 30px; padding-top: 2px;
                text-align: justify; vertical-align: middle;
                background-color: #000;
        }
        td.RFCbug span.RFC {
                font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
                font-weight: bold; color: #666;
        }
        td.RFCbug span.hotText {
                font-family: charcoal, monaco, geneva, "MS Sans Serif", helvetica, verdana, sans-serif;
                font-weight: normal; text-align: center; color: #FFF;
        }

        table.TOCbug { width: 30px; height: 15px; }
        td.TOCbug {
                text-align: center; width: 30px; height: 15px;
                color: #FFF; background-color: #900;
        }
        td.TOCbug a {
                font-family: monaco, charcoal, geneva, "MS Sans Serif", helvetica, sans-serif;
                font-weight: bold; font-size: x-small; text-decoration: none;
                color: #FFF; background-color: transparent;
        }

        td.header {
                font-family: arial, helvetica, sans-serif; font-size: x-small;
                vertical-align: top; width: 33%;
                color: #FFF; background-color: #666;
        }
        td.author { font-weight: bold; font-size: x-small; margin-left: 4em; }
        td.author-text { font-size: x-small; }

        /* info code from SantaKlauss at http://www.madaboutstyle.com/tooltip2.html */
        a.info {
                /* This is the key. */
                position: relative;
                z-index: 24;
                text-decoration: none;
        }
        a.info:hover {
                z-index: 25;
                color: #FFF; background-color: #900;
        }
        a.info span { display: none; }
        a.info:hover span.info {
                /* The span will display just on :hover state. */
                display: block;
                position: absolute;
                font-size: smaller;
                top: 2em; left: -5em; width: 15em;
                padding: 2px; border: 1px solid #333;
                color: #900; background-color: #EEE;
                text-align: left;
        }

        a { font-weight: bold; }
        a:link    { color: #900; background-color: transparent; }
        a:visited { color: #633; background-color: transparent; }
        a:active  { color: #633; background-color: transparent; }

        p { margin-left: 2em; margin-right: 2em; }
        p.copyright { font-size: x-small; }
        p.toc { font-size: small; font-weight: bold; margin-left: 3em; }
        table.toc { margin: 0 0 0 3em; padding: 0; border: 0; vertical-align: text-top; }
        td.toc { font-size: small; font-weight: bold; vertical-align: text-top; }

        ol.text { margin-left: 2em; margin-right: 2em; }
        ul.text { margin-left: 2em; margin-right: 2em; }
        li      { margin-left: 3em; }

        /* RFC-2629 <spanx>s and <artwork>s. */
        em     { font-style: italic; }
        strong { font-weight: bold; }
        dfn    { font-weight: bold; font-style: normal; }
        cite   { font-weight: normal; font-style: normal; }
        tt     { color: #036; }
        tt, pre, pre dfn, pre em, pre cite, pre span {
                font-family: "Courier New", Courier, monospace; font-size: small;
        }
        pre {
                text-align: left; padding: 4px;
                color: #000; background-color: #CCC;
        }
        pre dfn  { color: #900; }
        pre em   { color: #66F; background-color: #FFC; font-weight: normal; }
        pre .key { color: #33C; font-weight: bold; }
        pre .id  { color: #900; }
        pre .str { color: #000; background-color: #CFF; }
        pre .val { color: #066; }
        pre .rep { color: #909; }
        pre .oth { color: #000; background-color: #FCF; }
        pre .err { background-color: #FCC; }

        /* RFC-2629 <texttable>s. */
        table.all, table.full, table.headers, table.none {
                font-size: small; text-align: center; border-width: 2px;
                vertical-align: top; border-collapse: collapse;
        }
        table.all, table.full { border-style: solid; border-color: black; }
        table.headers, table.none { border-style: none; }
        th {
                font-weight: bold; border-color: black;
                border-width: 2px 2px 3px 2px;
        }
        table.all th, table.full th { border-style: solid; }
        table.headers th { border-style: none none solid none; }
        table.none th { border-style: none; }
        table.all td {
                border-style: solid; border-color: #333;
                border-width: 1px 2px;
        }
        table.full td, table.headers td, table.none td { border-style: none; }

        hr { height: 1px; }
        hr.insert {
                width: 80%; border-style: none; border-width: 0;
                color: #CCC; background-color: #CCC;
        }
--></style>
</head>
<body>
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<table summary="layout" width="66%" border="0" cellpadding="0" cellspacing="0"><tr><td><table summary="layout" width="100%" border="0" cellpadding="2" cellspacing="1">
<tr><td class="header">Internet Engineering Task Force</td><td class="header">M. Davis</td></tr>
<tr><td class="header">Internet-Draft</td><td class="header">Google</td></tr>
<tr><td class="header">Intended status: Informational</td><td class="header">A. Phillips</td></tr>
<tr><td class="header">Expires: June 7, 2012</td><td class="header">Lab126</td></tr>
<tr><td class="header">&nbsp;</td><td class="header">Y. Umaoka</td></tr>
<tr><td class="header">&nbsp;</td><td class="header">IBM</td></tr>
<tr><td class="header">&nbsp;</td><td class="header">C. Falk</td></tr>
<tr><td class="header">&nbsp;</td><td class="header">Infinite Automata</td></tr>
<tr><td class="header">&nbsp;</td><td class="header">December 5, 2011</td></tr>
</table></td></tr></table>
<h1><br />BCP 47 Extension T - Transformed Content<br />draft-davis-t-langtag-ext-07</h1>

<h3>Abstract</h3>

<p>
				This document specifies an Extension to BCP 47
				which provides
				subtags
				for specifying the source language or script of transformed
				content,
				including content
				that
				has been transliterated, transcribed, or
				translated, or in some other way influenced by the source. It also provides for additional information used for
				identification.
			
</p>
<h3>Status of this Memo</h3>
<p>
This Internet-Draft is submitted  in full
conformance with the provisions of BCP&nbsp;78 and BCP&nbsp;79.</p>
<p>
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF).  Note that other groups may also distribute
working documents as Internet-Drafts.  The list of current
Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.</p>
<p>
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any time.
It is inappropriate to use Internet-Drafts as reference material or to cite
them other than as &ldquo;work in progress.&rdquo;</p>
<p>
This Internet-Draft will expire on June 7, 2012.</p>

<h3>Copyright Notice</h3>
<p>
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors.  All rights reserved.</p>
<p>
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document.  Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.</p>
<a name="toc"></a><br /><hr />
<h3>Table of Contents</h3>
<p class="toc">
<a href="#anchor1">1.</a>&nbsp;
Introduction<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor2">1.1.</a>&nbsp;
Requirements Language<br />
<a href="#anchor3">2.</a>&nbsp;
BCP47 Required Information<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#anchor4">2.1.</a>&nbsp;
Overview<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#structure">2.2.</a>&nbsp;
Structure<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#canonicalization">2.3.</a>&nbsp;
Canonicalization<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#regform">2.4.</a>&nbsp;
BCP47 Registration Form<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#summary">2.5.</a>&nbsp;
Field Definitions<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#registration">2.6.</a>&nbsp;
Registration of Field Subtags<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#field-registration">2.7.</a>&nbsp;
Registration of Additional Fields<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#committee-responses">2.8.</a>&nbsp;
Committee Responses to Registration Proposals<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#machine-readable">2.9.</a>&nbsp;
Machine-Readable Data<br />
<a href="#Acknowledgements">3.</a>&nbsp;
Acknowledgements<br />
<a href="#IANA">4.</a>&nbsp;
IANA Considerations<br />
<a href="#Security">5.</a>&nbsp;
Security Considerations<br />
<a href="#rfc.references1">6.</a>&nbsp;
References<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#rfc.references1">6.1.</a>&nbsp;
Normative References<br />
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#rfc.references2">6.2.</a>&nbsp;
Informative References<br />
<a href="#rfc.authors">&#167;</a>&nbsp;
Authors' Addresses<br />
</p>
<br clear="all" />

<a name="anchor1"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.1"></a><h3>1.&nbsp;
Introduction</h3>

<p>
				<a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>
				permits the definition and registration of language tag extensions
				"that contain a language component and are compatible with
				applications that
				understand language tags". This document defines an
				extension for
				specifying the source of content that has been transformed,
				including text that has been transliterated, transcribed, or
				translated, or in some other way influenced by the source.
				It may be used in queries to request content that has been
				transformed.
				The "singleton" identifier for this extension is 't'.
			
</p>
<p>
				Language tags, as defined by
				<a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>, are useful for identifying the language of content.
				There are
				mechanisms for specifying variant subtags for special purposes.
				However, these variants are insufficient for specifying content that has
				undergone
				transformations,
				including content that has been
				transliterated,
				transcribed, or
				translated.
				The correct interpretation of the content may depend upon knowledge of the conventions used for the transformation.
			
</p>
<p>
			   Suppose that Italian or Russian
			   cities on a map are transcribed for Japanese users. Each name needs to be
			   transliterated into katakana using rules appropriate for the specific
			   source and target language.   When tagging such data, it is important
			   to be able to indicate not only the resulting content language ("ja"
			   in this case), but also the source language.
</p>
<p>Transforms such as transliterations may vary depending not only on the
			   basis of the source and target script, but also on the source and target language.
			   Thus the
			   Russian &lt;U+041F U+0443 U+0442 U+0438 U+043D> (which corresponds to
			   the Cyrillic &lt;PE, U, TE, I, EN>) transliterates into "Putin" in
			   English but "Poutine" in French.  The identifier could be used to indicate
			   a desired mechanical transformation in an API, or could be used to tag
			   data that has been converted (mechanically or by hand) according to a
			   transliteration method.
</p>
<p>
				In addition, many different conventions have arisen for how to transform text, even between the same languages and scripts.
                For example, "Gaddafi" is commonly transliterated from Arabic to English as any of (G/Q/K/Kh)a(d/dh/dd/dhdh/th/zz)af(i/y).
				Some examples of  standardized conventions used for transcribing or transliterating text include:
                </p>
<blockquote class="text"><dl>
<dt>a.</dt>
<dd>United Nations Group of Experts on Geographical Names (UNGEGN)
</dd>
<dt>b.</dt>
<dd>US Library of Congress (LOC)
</dd>
<dt>c.</dt>
<dd>US Board on Geographic Names (BGN)
</dd>
<dt>d.</dt>
<dd>Korean Ministry of Culture, Sports and Tourism (MCST)
</dd>
<dt>e.</dt>
<dd>International Organization for Standardization (ISO)
</dd>
</dl></blockquote><p>
				
</p>
<p>The usage of this extension is not limited to formal transformations, 
				and may include other instances where the content is in some other way influenced by the source. 
				For example, this extension could be used to designate a request for a speech recognizer 
				that is tailored specifically for 2nd-language speakers who are 
				1st-language speakers of a particular language (e.g. a recognizer for "English spoken with a Chinese accent").
</p>
<a name="anchor2"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.1.1"></a><h3>1.1.&nbsp;
Requirements Language</h3>

<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
					NOT",
					"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
					in this
					document are to be interpreted as described in RFC 2119.
</p>
<a name="anchor3"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2"></a><h3>2.&nbsp;
BCP47 Required Information</h3>

<a name="anchor4"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.1"></a><h3>2.1.&nbsp;
Overview</h3>

<p>
					Identification of transformed content can be done using the 't' extension
					defined in this document.
					This extension is formed by the 't'
					singleton followed by a sequence of subtags that would form a
					language tag as defined by
					<a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>.
					This allows for the source language or script to be specified to
					the degree of precision required.
					There are restrictions on the
					sequence of subtags.
					They MUST form a regular, valid, canonical
					language
					tag, and MUST neither include extensions nor private use
					sequences introduced by the
					singleton
					'x'.
					Where only the script is
					relevant (such as identifying
					a
					script-script
					transliteration) then
					'und' is used for the primary language subtag.
				
</p>
<p>For example:
</p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
<col align="left"><col align="left">
<tr><th align="left">Language Tag</th><th align="left">Description</th></tr>
<tr>
<td align="left">ja-t-it</td>
<td align="left">The content is Japanese, transformed from Italian.</td>
</tr>
<tr>
<td align="left">ja-Kana-t-it</td>
<td align="left">The content is Japanese Katakana, transformed from Italian.</td>
</tr>
<tr>
<td align="left">und-Latn-t-und-cyrl</td>
<td align="left">The content is in the Latin script, transformed from the Cyrillic
						script.</td>
</tr>
</table>
<br clear="all" />

<p>
					Note that the sequence of subtags governed by 't' cannot contain a
					singleton (a single-character subtag), because that would start a
					new extension.
					For example, the tag "ja-t-i-ami"
					does not indicate
					that the source is in "i-ami", because "i-ami" is not a
					regular
					language tag in
					<a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>. That tag would express an empty 't' extension followed by an 'i'
					extension.
				
</p>
<p>The 't' extension is not intended for use in structured data that already provides 
				separate source and target language identifiers.
				For example, this is the case in localization interchange formats such as XLIFF.
				In such cases, it would be inappropriate to use "ja-t-it" for the target language tag because the source language tag
				"it" would already be present in the data. Instead one would use the language tag "ja".
				
</p>
<p>As noted earlier, it is sometimes necessary to indicate additional
					information about a transformation.
					This additional information is optionally supplied after the source in a series of one or more fields,
					where each field consists of a field separator subtag followed by one or more non-separator subtags.
					Each field separator subtag consists of a single letter followed by a single digit.
					
</p>
<p>A transformation mechanism is an optional field that indicates
					the
					specification used for the transformation, such as "UNGEGN" for
					the
					the United Nations Group of Experts on
					Geographical
					Names
					transliterations and transcriptions. It uses the 'm0' field separator followed by certain subtags.
				
</p>
<p>For example:
</p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
<col align="left"><col align="left">
<tr><th align="left">Language Tag</th><th align="left">Description</th></tr>
<tr>
<td align="left">und-Cyrl-t-und-latn-m0-ungegn-2007</td>
<td align="left">the content is in Cyrillic, transformed from Latn, according
						to a
						UNGEGN specification dated 2007.</td>
</tr>
</table>
<br clear="all" />

<p>The field separator subtags such as 'm0' were chosen because they are
					short, visually distinctive,
					and cannot occur in a language subtag
					(outside of an extension and
					after 'x'),
					thus eliminating the
					potential for collision or confusion with the
					source language tag.
</p>
<p>
					The field subtags are defined by
					<a href='http://unicode.org/reports/tr35/'>Section 3</a>
					of
					<a class='info' href='#UTS35'>Unicode
						Technical Standard #35: Unicode Locale Data
						Markup Language<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a> [UTS35] (LDML), the main specification for the Unicode
                    Common Locale Data Repository (CLDR) project.
                    As required by BCP 47, subtags follow the language tag ABNF and
					other rules for the formation of language tags and subtags, are
					restricted to the ASCII letters and digits, are not case sensitive,
					and do not exceed eight characters in length.
				
</p>
<p>
					EDITORIAL NOTE: This new facility has been accepted by the Unicode
				    CLDR committee for incorporation into the next versions of CLDR and LDML, parallel
					with the structure of the 'u' extension
					<a class='info' href='#RFC6067'>[RFC6067]<span> (</span><span class='info'>Davis, M., Ed., Phillips, A., Ed., and Y. Umaoka, Ed., &ldquo;BCP 47 Extension U,&rdquo; September&nbsp;2010.</span><span>)</span></a>,
					for which it is already the maintaining authority.
					The data and
					specification will be available by the time this internet
					draft has
					been
					approved.
				
</p>
<p>The LDML specification is available over the Internet and at no cost, and
					is
					available via a royalty-free license at
					http://unicode.org/copyright.html. LDML is versioned, and each
					version of LDML is numbered, dated, and stable. Extension subtags,
					once
					defined by LDML, are never retracted or substantially changed in meaning. 
</p>
<p>The maintaining authority for the 't' extension is
					the Unicode
					Consortium:
</p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
<col align="left"><col align="left">
<tr><th align="left">Item</th><th align="left">Value</th></tr>
<tr>
<td align="left">Name</td>
<td align="left">Unicode Consortium</td>
</tr>
<tr>
<td align="left">Contact Email</td>
<td align="left">cldr-contact@unicode.org</td>
</tr>
<tr>
<td align="left">Discussion List Email</td>
<td align="left">cldr-users@unicode.org</td>
</tr>
<tr>
<td align="left">URL Location</td>
<td align="left">cldr.unicode.org</td>
</tr>
<tr>
<td align="left">Specification</td>
<td align="left">Unicode Technical Standard #35 Unicode Locale Data Markup
						Language (LDML), http://unicode.org/reports/tr35/</td>
</tr>
<tr>
<td align="left">Section</td>
<td align="left">Section 3 Unicode Language and Locale Identifiers</td>
</tr>
</table>
<br clear="all" />

<a name="structure"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.2"></a><h3>2.2.&nbsp;
Structure</h3>

<p>The subtags in the 't' extension are of the following form:
</p><div style='display: table; width: 0; margin-left: 3em; margin-right: auto'><pre>
<dfn>t-ext</dfn>=    "<span class='str'>t</span>"                      <em>; Extension</em>
          (("<span class='str'>-</span>" <cite class='id'>lang</cite> <span class='rep'>*</span>("<span class='str'>-</span>" <cite class='id'>field</cite>)) <em>; Source + optional field(s)</em>
          / <span class='rep'>1*</span>("<span class='str'>-</span>" <cite class='id'>field</cite>))         <em>; Field(s) only (no source)</em>

<dfn>lang</dfn>=     <cite class='id'>language</cite>                 <em>; BCP47, with restrictions</em>
          ["<span class='str'>-</span>" <cite class='id'>script</cite>]
          ["<span class='str'>-</span>" <cite class='id'>region</cite>]
          <span class='rep'>*</span>("<span class='str'>-</span>" <cite class='id'>variant</cite>)

<dfn>field</dfn>=    <cite class='id'>sep</cite> <span class='rep'>1*</span>("<span class='str'>-</span>" <span class='rep'>3*8</span><cite class='id'>alphanum</cite>)  <em>; With restrictions</em>

<dfn>sep</dfn>=      <cite class='key'>ALPHA</cite> <cite class='key'>DIGIT</cite>              <em>; Subtag separators</em>
<dfn>alphanum</dfn>= <cite class='key'>ALPHA</cite> / <cite class='key'>DIGIT</cite>
</pre></div>
<p>where &lt;language>, &lt;script>, &lt;region>, and &lt;variant> rules are specified in <a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>,
                &lt;ALPHA> and &lt;DIGIT> rules - in <a class='info' href='#RFC5234'>[RFC5234]<span> (</span><span class='info'>Crocker, Ed., &ldquo;Augmented BNF for Syntax Specifications: ABNF,&rdquo; 2008.</span><span>)</span></a>.
</p>
<p>Description and restrictions:
					</p>
<blockquote class="text"><dl>
<dt>a.</dt>
<dd>The 't' extension MUST have at least one subtag.
</dd>
<dt>b.</dt>
<dd>
							The 't' extension normally starts with a source language tag,
							which MUST be a regular, canonical language tag as specified by
							<a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>.
							Tags described by the 'irregular' production in BCP 47 MUST NOT
							be
							used to form the language tag.
							The source language tag MAY be
							omitted: some field values do not
							require it.
						
</dd>
<dt>c.</dt>
<dd>There is optionally a sequence of fields, where each field has a
							separator followed by a sequence of one or more subtags.
							Two identical field
							separators MUST NOT be present in the language tag.
</dd>
<dt>d.</dt>
<dd>
							The order of the fields in a 't' extension is not significant. The order of subtags within a field is significant.
							(See
							<a class='info' href='#canonicalization'>Section&nbsp;2.3<span> (</span><span class='info'>Canonicalization</span><span>)</span></a>
							Canonicalization.)
						
</dd>
<dt>e.</dt>
<dd>
		                    The 't' subtag fields are defined by 
		                    <a href='http://unicode.org/reports/tr35/'>Section 3</a>
		                    of
		                    <a class='info' href='#UTS35'>Unicode
		                        Technical Standard #35: Unicode Locale
		                        Data Markup Language<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a> [UTS35].
		                
</dd>
</dl></blockquote><p>
				
</p>
<a name="canonicalization"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.3"></a><h3>2.3.&nbsp;
Canonicalization</h3>

<p>As required by
                    <a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>, the use of uppercase or lowercase letters is not significant in
                    the subtags used in this extension. The canonical form for all
                    subtags in the extension is lowercase, with the fields ordered by
                    the separators, alphabetically.
                    The order of subtags within a field is significant, and MUST NOT be changed in the process of canonicalizing.
</p>
<a name="regform"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.4"></a><h3>2.4.&nbsp;
BCP47 Registration Form</h3>

<p>
                    Per
                    <a class='info' href='#BCP47'>RFC 5646, Section 3.7<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a> [BCP47]:
                
</p><div style='display: table; width: 0; margin-left: 3em; margin-right: auto'><pre>
%%
Identifier: t
Description: Specifying Transformed Content
Comments: Subtags for the identification of content that has been
transformed, including but not limited to:
transliteration, transcription, and translation.
Added: 2010-mm-dd
RFC: [TBD]
Authority: Unicode Consortium
Contact_Email: cldr-contact@unicode.org
Mailing_List: cldr-users@unicode.org
URL: http://www.unicode.org/Public/cldr/latest/core.zip
%%</pre></div>
<a name="summary"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.5"></a><h3>2.5.&nbsp;
Field Definitions</h3>

<p>Assignment of 't' field subtags is determined by the Unicode CLDR
                    Technical Committee, in accordance with the policies and procedures
                    in
                    <a href='http://www.unicode.org/consortium/tc-procedures.html'>http://www.unicode.org/consortium/tc-procedures.html</a>,
                    and subject to the Unicode Consortium Policies on
                    <a href='http://www.unicode.org/policies/policies.html'>http://www.unicode.org/policies/policies.html</a>.
</p>
<p>
                    Assignments that can be made by successive versions of
                    <a class='info' href='#UTS35'>LDML<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a> [UTS35]
                    by the Unicode Consortium without requiring a new RFC include:
                    </p>
<ul class="text">
<li>The
                    allocation of new field separator subtags for use after the 't' extension.
</li>
<li>The allocation of subtags valid after a field separator subtag.
</li>
<li>The addition of subtag aliases and descriptions. 
</li>
<li>The modification of subtag descriptions.
</li>
</ul><p>
                    Changes to the syntax or meaning of the 't' extension would require a new 
                    RFC that obsoletes this document; such an RFC would break stability, and
                    would thus be contrary to the policies of the Unicode Consortium.
                
</p>
<p>
				  At the time this document was published, one field was specified in 
				  <a class='info' href='#UTS35'>[UTS35]<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a>: the transform mechanism.
                  That field is summarized here:
					</p>
<blockquote class="text"><dl>
<dt>a.</dt>
<dd>
							The transform mechanism consists of a sequence of
							subtags
							starting
							with the 'm0' separator followed by one or more
							mechanism subtags.
							Each mechanism subtag has a length of 3 to 8
							alphanumeric
							characters.
							The sequence as a whole provides an
							identification of the
							specification
							for the transform,
							such as the
							mechanism subtag 'ungegn' in
							"und-Cyrl-t-und-latn-m0-ungegn".
							In
							many cases, only one mechanism subtag is necessary, but
							multiple
							subtags MAY be defined in
							<a class='info' href='#UTS35'>[UTS35]<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a>
							where necessary.
						
</dd>
<dt>b.</dt>
<dd>
							Any purely numeric subtag is a representation of a date in the
							Gregorian calendar.
							It MAY occur in any mechanism field, but it SHOULD only be used where necessary.
							If it does occur:
							
<ul class="text">
<li>it MUST occur as the final subtag in the field
</li>
<li>it MUST NOT be the only subtag in the field
</li>
<li>it MUST only consist of a sequence of digits of the form YYYY,
									YYYYMM, or YYYYMMDD
</li>
<li>it SHOULD be as short as possible
</li>
</ul>
							Note: The format is related to that of <a class='info' href='#RFC3339'>[RFC3339]<span> (</span><span class='info'>Klyne, Ed. and Newman, Ed., &ldquo;Date and Time on the Internet: Timestamps,&rdquo; 2002.</span><span>)</span></a>, but is not the same.
							The RFC 3339 full-date won't work because it uses hyphens. The offset ("Z") is not used
							because the date is a publication date (aka 'floating date'). For more information, see
							 Section 3.3, Floating Time in 
							 <a class='info' href='#W3C-TimeZones'>[W3C&#8209;TimeZones]<span> (</span><span class='info'>Phillips, Ed., &ldquo;W3C Working Group Note: Working with Time Zones,&rdquo; July&nbsp;2011.</span><span>)</span></a>.
							 
</dd>
<dt>c.</dt>
<dd>
							Examples:
							
<ul class="text">
<li>20110623 represents June 23rd, 2011.
</li>
<li>There are 3 dated versions of the UNGEGN transliteration
                            specification for Hebrew to Latin. They can be represented by the following language tags:
                            
<ul class="text">
<li>und-Hebr-t-und-Latn-m0-ungegn-1972
</li>
<li>und-Hebr-t-und-Latn-m0-ungegn-1977
</li>
<li>und-Hebr-t-und-Latn-m0-ungegn-2007
</li>
</ul>
							
</li>
<li>Suppose that the BGN transliteration
							specification for Cyrillic to Latin had three versions,
							dated
							June 11th, 1999; Dec 30th, 1999; and May 1st, 2011.
							In that
							case, the corresponding first two DATE subtags would require
							months
							to be distinctive (199906 and 199912), but the last
							subtag
							would only
							require the year (2011).
</li>
</ul>
						
</dd>
<dt>d.</dt>
<dd>
							Some mechanisms may use a versioning system that is not
							distinguished by date, or not by date alone.
							In the latter case,
							the version will be of a form specified by
							<a class='info' href='#UTS35'>[UTS35]<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a>
							for that mechanism.
							For example, if the mechanism XXX uses
							versions of the form v21a,
							then a tag could look like
							"ja-t-it-m0-xxx-v21a". If there are
							multiple subversions
							distinguished by date,
							then a tag could look like
							"ja-t-it-m0-xxx-v21a-2007".
						
</dd>
</dl></blockquote><p>
					
				
</p>
<p>A language tag with the 't' extension MAY be used to request a specific transform of content.
				In such a case, the recipient SHOULD return content that corresponds
				as closely as feasible to the requested transform, including the specification of the mechanism.
				For example, if the request is ja-t-it-m0-xxx-v21a-2007,
				and the recipient has content corresponding to both ja-t-it-m0-xxx-v21a and ja-t-it-m0-xxx-v21b-2009, then the v21a version would be preferred.
				As is the case for language matching as discussed in <a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>,
				different implementations MAY have different measures of "closeness".
</p>
<a name="registration"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.6"></a><h3>2.6.&nbsp;
Registration of Field Subtags</h3>

<p>Registration of transform mechanisms is requested by filing a ticket at
					<a href='http://cldr.unicode.org/'>cldr.unicode.org</a>.
					The proposal in the ticket MUST contain the following information:
</p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
<col align="left"><col align="left">
<tr><th align="left">Item</th><th align="left">Description</th></tr>
<tr>
<td align="left">Subtag</td>
<td align="left">The proposed mechanism subtag (or subtag sequence).</td>
</tr>
<tr>
<td align="left">Description</td>
<td align="left">A description of the proposed mechanism; that description MUST be sufficient to distinguish it from other mechanisms in use.</td>
</tr>
<tr>
<td align="left">Version</td>
<td align="left">If versioning for the mechanism is not done according to date, then a description of the versioning conventions used for the mechanism.</td>
</tr>
</table>
<br clear="all" />

<p>Proposals for clarifications of descriptions or additional aliases may also be requested by filing a ticket.
</p>
<p>The committee MAY define a template for submissions that requests more information,
                 if it is found that such information would be useful in evaluating proposals.
</p>
<a name="field-registration"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.7"></a><h3>2.7.&nbsp;
Registration of Additional Fields</h3>

<p>In the event that it proves necessary to add an additional field (such as 'm2'),
                it can be requested by filing a ticket at
                    <a href='http://cldr.unicode.org/'>cldr.unicode.org</a>.
                    The proposal in the ticket MUST contain a full description of the
                    proposed field semantics and subtag syntax,
                    and MUST be conform to the ABNF syntax for "field" presented in <a class='info' href='#structure'>Section&nbsp;2.2<span> (</span><span class='info'>Structure</span><span>)</span></a>.
</p>
<a name="committee-responses"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.8"></a><h3>2.8.&nbsp;
Committee Responses to Registration Proposals</h3>

<p>The committee MUST post each proposal publicly within 2 weeks after reception,
                to allow for comments. The committee must respond publicly to each proposal within 4 weeks after reception.
</p>
<p>The response MAY:
                    </p>
<ul class="text">
<li>request more information or clarification
</li>
<li>accept the proposal, optionally with modifications to the subtag or description
</li>
<li>reject the proposal, because of significant objections raised on the mailing list or 
                        due to problems with constraints in this document or in <a class='info' href='#UTS35'>[UTS35]<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a>
</li>
</ul><p>
                
</p>
<p>Accepted tickets result in a new entry in the machine-readable CLDR BCP47 data,
                or in the case of a clarified description,
                modifications to the description attribute value for an existing entry.
</p>
<a name="machine-readable"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.2.9"></a><h3>2.9.&nbsp;
Machine-Readable Data</h3>

<p>
					EDITORIAL NOTE: The following parallels the structure used for the
					'u' extension
					<a class='info' href='#RFC6067'>[RFC6067]<span> (</span><span class='info'>Davis, M., Ed., Phillips, A., Ed., and Y. Umaoka, Ed., &ldquo;BCP 47 Extension U,&rdquo; September&nbsp;2010.</span><span>)</span></a>,
					for which the Unicode Consortium is the maintaining authority.
					The
					data and
					specification will be available by the time this internet
					draft has
					been
					approved. The description field is in the process of being added to CLDR.
				
</p>
<p>
					Beginning with CLDR version 1.7.2, machine-readable files are
					available listing the data defined for BCP47 extensions for each
					successive version of
					<a class='info' href='#UTS35'>[UTS35]<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a>. These releases are listed on
					<a href='http://cldr.unicode.org/index/downloads'>http://cldr.unicode.org/index/downloads</a>.
					Each release has an associated data directory of the form
					"http://unicode.org/Public/cldr/&lt;version&gt;", where
					"&lt;version&gt;" is replaced by the release number. For example,
					for version 1.7.2, the "core.zip" file is located at
					<a href='http://unicode.org/Public/cldr/1.7.2/'>http://unicode.org/Public/cldr/1.7.2/core.zip</a>.
					The most
                    recent version is always identified by the version "latest" and can
                    be accessed by the URL in
                    <a class='info' href='#regform'>Section&nbsp;2.4<span> (</span><span class='info'>BCP47 Registration Form</span><span>)</span></a>.
</p>
<p>Inside the "core.zip" file, the directory "common/bcp47" contains the
					data files listing the valid attributes, keys, and types for each successive version of <a class='info' href='#UTS35'>[UTS35]<span> (</span><span class='info'>Davis, M., &ldquo;Unicode Technical Standard #35: Locale Data 						Markup Language (LDML),&rdquo; December&nbsp;2007.</span><span>)</span></a>.
					Each data file list the keys and types relevant to that topic. For example, mechanism.xml contains the subtags (types) for the 't' mechanisms.
</p>
<p>The XML structure lists the keys, such as &lt;key extension="t" name="m0" alias="collation" description="Transliteration extension mechanism">, with subelements for the types, 
					such as &lt;type name="ungegn" description="United Nations Group of Experts on Geographical Names"/>. The currently defined attributes for the mechanisms include:
</p><table class="full" align="center" border="0" cellpadding="2" cellspacing="2">
<col align="left"><col align="left"><col align="left">
<tr><th align="left">Attribute</th><th align="left">Description</th><th align="left">Examples</th></tr>
<tr>
<td align="left">name</td>
<td align="left">The name of the mechanism, limited to 3-8 characters (or sequences of them).</td>
<td align="left">UNGEGN, ALALC</td>
</tr>
<tr>
<td align="left">description</td>
<td align="left">A description of the name, with all and only that information necessary to distinguish one name
                     from others with which it might be confused.  Descriptions are not intended to provide general background information.</td>
<td align="left">United Nations Group of Experts on Geographical Names; American Library Association-Library of Congress</td>
</tr>
<tr>
<td align="left">since</td>
<td align="left">Indicates the first version of CLDR where the name appears. (Required for new items.)</td>
<td align="left">1.9, 2.0.1</td>
</tr>
<tr>
<td align="left">alias</td>
<td align="left">Alternative name of the key or type, not limited in number of characters. Aliases are intended for backwards compatibility,
                    not to provide all possible alternate names or designations. (Optional)</td>
<td align="left">&nbsp;</td>
</tr>
</table>
<br clear="all" />

<p>The file for the transform extension is "transform.xml".
				The initial version of that file contains the following information.
</p><div style='display: table; width: 0; margin-left: 3em; margin-right: auto'><pre>
&lt;key extension="t" name="m0" description=
      "Transliteration extension mechanism"/&gt;
   &lt;type name="ungegn" description=
      "United Nations Group of Experts on Geographical Names"/&gt;
   &lt;type name="alaloc" description=
      "American Library Association-Library of Congress"/&gt;
   &lt;type name="bgn" description=
      "US Board on Geographic Names"/&gt;
   &lt;type name="mcst" description=
      "Korean Ministry of Culture, Sports and Tourism"/&gt;
   &lt;type name="iso" description=
      "International Organization for Standardization"/&gt;
   &lt;type name="din" description=
      "Deutsches Institut fuer Normung"/&gt;
   &lt;type name="gost" description=
      "Euro-Asian Council for Standardization, Metrology
       and Certification"/&gt;
&lt;/key&gt;
</pre></div>
<p>
					To get the version information in XML when working with the data
					files, the XML parser must be validating. When the 'core.zip' file
					is unzipped, the 'dtd' directory will be at the same level as the
					'bcp47' directory; that is required for correct validation. For
					each release after CLDR 1.8, types introduced in that release are
					also marked in the data files by the XML attribute "since", such as
					in the following example:
					</p>
<div style='display: table; width: 0; margin-left: 3em; margin-right: auto'><pre>&lt;type name="adp" since="1.9"/&gt;</pre></div><p>

				
</p>
<p>
					The data is also currently maintained in a source code repository,
					with each release tagged, for viewing directly without unzipping.
					For example, see:
					</p>
<ul class="text">
<li>http://unicode.org/repos/cldr/tags/release-1-7-2/common/bcp47/
</li>
<li>http://unicode.org/repos/cldr/tags/release-1-8/common/bcp47/
</li>
</ul><p>
				
</p>
<p>For more information, see 
				<a href='http://cldr.unicode.org/index/bcp47-extension'>http://cldr.unicode.org/index/bcp47-extension</a>.
</p>
<a name="Acknowledgements"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.3"></a><h3>3.&nbsp;
Acknowledgements</h3>

<p>Thanks to John Emmons and the rest of the Unicode
				CLDR Technical
				Committee for their work in developing the BCP 47 subtags
				for LDML.
</p>
<a name="IANA"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.4"></a><h3>4.&nbsp;
IANA Considerations</h3>

<p>
				This document will require IANA to insert the record of
				<a class='info' href='#regform'>Section&nbsp;2.4<span> (</span><span class='info'>BCP47 Registration Form</span><span>)</span></a>
				into the Language Extensions Registry, according to
				Section 3.7,
				Extensions and the Extensions Registry of "Tags for
				Identifying
				Languages" in
				<a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>. Per Section 5.2 of
				<a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>, there might be occasional (rare) requests by the Unicode
				Consortium (the "Authority" listed in the record) for maintenance of
				this record. Changes that can be submitted to IANA without the
				publication of a new RFC are limited to modification of the
				Comments, Contact_Email, Mailing_List, and URL fields. Any such
				requested changes MUST use the domain 'unicode.org' in any new
				addresses or URIs, MUST explicitly cite this document (so that IANA
				can reference these requirements), and MUST originate from the
				'unicode.org' domain. The domain or authority can only be changed
				via a new RFC.
			
</p>
<p>This document does not require IANA to create or maintain a new
				registry or otherwise impact IANA.
</p>
<a name="Security"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.5"></a><h3>5.&nbsp;
Security Considerations</h3>

<p>
				The security considerations for this extension are the same as those
				for
				<a class='info' href='#BCP47'>[BCP47]<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a>. See
				<a class='info' href='#BCP47'>RFC 5646, Section 6, Security Considerations<span> (</span><span class='info'>Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</span><span>)</span></a> [BCP47].
			
</p>
<a name="rfc.references"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<a name="rfc.section.6"></a><h3>6.&nbsp;
References</h3>

<a name="rfc.references1"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<h3>6.1.&nbsp;Normative References</h3>
<table width="99%" border="0">
<tr><td class="author-text" valign="top"><a name="BCP47">[BCP47]</a></td>
<td class="author-text">Davis, M., Ed. and A. Phillips, Ed., &ldquo;Tags for the Identification of Language (BCP47),&rdquo; September&nbsp;2009.</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC5234">[RFC5234]</a></td>
<td class="author-text">Crocker, Ed., &ldquo;Augmented BNF for Syntax Specifications: ABNF,&rdquo; 2008.</td></tr>
<tr><td class="author-text" valign="top"><a name="RFC6067">[RFC6067]</a></td>
<td class="author-text">Davis, M., Ed., Phillips, A., Ed., and Y. Umaoka, Ed., &ldquo;BCP 47 Extension U,&rdquo; September&nbsp;2010.</td></tr>
<tr><td class="author-text" valign="top"><a name="UTS35">[UTS35]</a></td>
<td class="author-text">Davis, M., &ldquo;<a href="http://www.unicode.org/reports/tr35/">Unicode Technical Standard #35: Locale Data
						Markup Language (LDML)</a>,&rdquo; December&nbsp;2007.</td></tr>
</table>

<a name="rfc.references2"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<h3>6.2.&nbsp;Informative References</h3>
<table width="99%" border="0">
<tr><td class="author-text" valign="top"><a name="RFC3339">[RFC3339]</a></td>
<td class="author-text">Klyne, Ed. and Newman, Ed., &ldquo;Date and Time on the Internet: Timestamps,&rdquo; 2002.</td></tr>
<tr><td class="author-text" valign="top"><a name="W3C-TimeZones">[W3C-TimeZones]</a></td>
<td class="author-text">Phillips, Ed., &ldquo;<a href="http://www.w3.org/TR/2011/NOTE-timezone-20110705/">W3C Working Group Note: Working with Time Zones</a>,&rdquo; July&nbsp;2011.</td></tr>
<tr><td class="author-text" valign="top"><a name="ldml-registry">[ldml-registry]</a></td>
<td class="author-text">&ldquo;Registry for Common Locale Data Repository tag elements,&rdquo; September&nbsp;2009.</td></tr>
</table>

<a name="rfc.authors"></a><br /><hr />
<table summary="layout" cellpadding="0" cellspacing="2" class="TOCbug" align="right"><tr><td class="TOCbug"><a href="#toc">&nbsp;TOC&nbsp;</a></td></tr></table>
<h3>Authors' Addresses</h3>
<table width="99%" border="0" cellpadding="0" cellspacing="0">
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Mark Davis</td></tr>
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Google</td></tr>
<tr><td class="author" align="right">Email:&nbsp;</td>
<td class="author-text"><a href="mailto:mark@macchiato.com">mark@macchiato.com</a></td></tr>
<tr cellpadding="3"><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Addison Phillips</td></tr>
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Lab126</td></tr>
<tr><td class="author" align="right">Email:&nbsp;</td>
<td class="author-text"><a href="mailto:addison@lab126.com">addison@lab126.com</a></td></tr>
<tr cellpadding="3"><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Yoshito Umaoka</td></tr>
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">IBM</td></tr>
<tr><td class="author" align="right">Email:&nbsp;</td>
<td class="author-text"><a href="mailto:yoshito_umaoka@us.ibm.com">yoshito_umaoka@us.ibm.com</a></td></tr>
<tr cellpadding="3"><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Courtney Falk</td></tr>
<tr><td class="author-text">&nbsp;</td>
<td class="author-text">Infinite Automata</td></tr>
<tr><td class="author" align="right">Email:&nbsp;</td>
<td class="author-text"><a href="mailto:court@infiauto.com">court@infiauto.com</a></td></tr>
</table>
</body></html>
