Network Working Group A. Phillips, Ed.
Request for Comments: 4646 Yahoo! Inc.
BCP: 47 M. Davis, Ed.
Obsoletes: 3066 Google
Category: Best Current Practice September 2006
Tags for Identifying Languages
Status of This Memo
This document specifies an Internet Best Current Practices for the
Internet Community, and requests discussion and suggestions for
improvements. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
This document describes the structure, content, construction, and
semantics of language tags for use in cases where it is desirable to
indicate the language used in an information object. It also
describes how to register values for use in language tags and the
creation of user-defined extensions for private interchange. This
document, in combination with RFC 4647, replaces RFC 3066, which
replaced RFC 1766.
Phillips & Davis Best Current Practice [Page 1]
RFC 4646 Tags for Identifying Languages September 2006
Table of Contents
1. Introduction ....................................................3
2. The Language Tag ................................................4
2.1. Syntax .....................................................4
2.2. Language Subtag Sources and Interpretation .................7
2.2.1. Primary Language Subtag .............................8
2.2.2. Extended Language Subtags ..........................10
2.2.3. Script Subtag ......................................11
2.2.4. Region Subtag ......................................11
2.2.5. Variant Subtags ....................................13
2.2.6. Extension Subtags ..................................14
2.2.7. Private Use Subtags ................................16
2.2.8. Preexisting RFC 3066 Registrations .................16
2.2.9. Classes of Conformance .............................17
3. Registry Format and Maintenance ................................18
3.1. Format of the IANA Language Subtag Registry ...............18
3.2. Language Subtag Reviewer ..................................24
3.3. Maintenance of the Registry ...............................24
3.4. Stability of IANA Registry Entries ........................25
3.5. Registration Procedure for Subtags ........................29
3.6. Possibilities for Registration ............................32
3.7. Extensions and Extensions Registry ........................34
3.8. Initialization of the Registries ..........................37
4. Formation and Processing of Language Tags ......................38
4.1. Choice of Language Tag ....................................38
4.2. Meaning of the Language Tag ...............................40
4.3. Length Considerations .....................................41
4.3.1. Working with Limited Buffer Sizes ..................42
4.3.2. Truncation of Language Tags ........................43
4.4. Canonicalization of Language Tags .........................44
4.5. Considerations for Private Use Subtags ....................45
5. IANA Considerations ............................................46
5.1. Language Subtag Registry ..................................46
5.2. Extensions Registry .......................................47
6. Security Considerations ........................................48
7. Character Set Considerations ...................................48
8. Changes from RFC 3066 ..........................................49
9. References .....................................................52
9.1. Normative References ......................................52
9.2. Informative References ....................................53
Appendix A. Acknowledgements ......................................55
Appendix B. Examples of Language Tags (Informative) ...............56
Phillips & Davis Best Current Practice [Page 2]
RFC 4646 Tags for Identifying Languages September 2006
1. Introduction
Human beings on our planet have, past and present, used a number of
languages. There are many reasons why one would want to identify the
language used when presenting or requesting information.
A user's language preferences often need to be identified so that
appropriate processing can be applied. For example, the user's