RFC Number : 3536
Title : Terminology Used in Internationalization in the IETF.
Network Working Group P. Hoffman Request for Comments: 3536 IMC & VPNC Category: Informational May 2003
Terminology Used in Internationalization in the IETF
Status of this Memo
This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract
This document provides a glossary of terms used in the IETF when discussing internationalization. The purpose is to help frame discussions of internationalization in the various areas of the IETF and to help introduce the main concepts to IETF participants.
Table of Contents
1. Introduction................................................... 2 1.1 Purpose of this document.................................... 2 1.2 Format of the definitions in this document.................. 3 2. Fundamental Terms.............................................. 3 3. Standards Bodies and Standards................................. 8 3.1 Standards bodies............................................ 8 3.2 Encodings and transformation formats of ISO/IEC 10646....... 10 3.3 Native CCSs and charsets.................................... 11 4. Character Issues............................................... 12 4.1 Types of characters......................................... 15 5. User interface for text........................................ 17 6. Text in current IETF protocols................................. 19 7. Other Common Terms In Internationalization..................... 22 8. Security Considerations........................................ 25 9. References..................................................... 25 9.1 Normative References........................................ 25 9.2 Informative References...................................... 26 10. Additional Interesting Reading................................ 27 11. Index......................................................... 27 A. Acknowledgements............................................... 29 B. Author's Address............................................... 29 Full Copyright Statement.......................................... 30
Hoffman Informational [Page 1]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
1. Introduction
As [RFC2277] summarizes: 'Internationalization is for humans. This means that protocols are not subject to internationalization; text strings are.' Many protocols throughout the IETF use text strings that are entered by, or are visible to, humans. It should be possible for anyone to enter or read these text strings, which means that Internet users must be able to be enter text in typical input methods and displayed in any human language. Further, text containing any character should be able to be passed between Internet applications easily. This is the challenge of internationalization.
1.1 Purpose of this document
This document provides a glossary of terms used in the IETF when discussing internationalization. The purpose is to help frame discussions of internationalization in the various areas of the IETF and to help introduce the main concepts to IETF participants.
Internationalization is discussed in many working groups of the IETF. However, few working groups have internationalization experts. When designing or updating protocols, the question often comes up 'should we internationalize this' (or, more likely, 'do we have to internationalize this').
This document gives an overview of internationalization as it applies to IETF standards work by lightly covering the many aspects of internationalization and the vocabulary associated with those topics. It is not meant to be a complete description of internationalization. The definitions in this document are not normative for IETF standards; however, they are useful and standards may make informative reference to this document after it becomes an RFC. Some of the definitions in this document come from many earlier IETF documents and books.
As in many fields, there is disagreement in the internationalization community on definitions for many words. The topic of language brings up particularly passionate opinions for experts and non- experts alike. This document attempts to define terms in a way that will be most useful to the IETF audience.
This document uses definitions from many documents that have been developed outside the IETF. The primary documents used are:
- ISO/IEC 10646 [ISOIEC10646]
- The Unicode Standard [UNICODE]
Hoffman Informational [Page 2]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
- W3C Character Model [CHARMOD]
- IETF RFCs, including [RFC2277]
1.2 Format of the definitions in this document
In the body of this document, the source for the definition is shown in angle brackets, such as ''. Many definitions are shown as '', which means that the definitions were crafted originally for this document. The angle bracket notation for the source of definitions is different than the square bracket notation used for references to documents, such as in the paragraph above; these references are given in Section 9.
For some terms, there are commentary and examples after the definitions. In those cases, the part before the angle brackets is the definition that comes from the original source, and the part after the angle brackets is commentary that is not a definition (such as examples or further exposition).
Examples in this document use the notation for code points and names from the Unicode Standard [UNICODE] and ISO/IEC 10646 [ISOIEC10646]. For example, the letter 'a' may be represented as either 'U+0061' or 'LATIN SMALL LETTER A'.
2. Fundamental Terms
This section covers basic topics that are needed for almost anyone who is involved with making IETF protocols more friendly to non-ASCII text and with other aspects of internationalization.
language
A language is a way that humans interact. The use of language occurs in many forms, the most common of which are speech, writing, and signing.
Some languages have a close relationship between the written and spoken forms, while others have a looser relationship. [RFC3066] discusses languages in more detail and provides identifiers for languages for use in Internet protocols. Note that computer languages are explicitly excluded from this definition.
script
A set of graphic characters used for the written form of one or more languages.
Hoffman Informational [Page 3]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
Examples of scripts are Latin, Cyrillic, Greek, Arabic, and Han (the ideographs used in writing Chinese, Japanese, and Korean). [RFC2277] discusses scripts in detail.
It is common for internationalization novices to mix up the terms 'language' and 'script'. This can be a problem in protocols that differentiate the two. Almost all protocols that are designed (or were re-designed) to handle non-ASCII text deal with scripts (the written systems) or characters, while fewer actually deal with languages.
A single name can mean either a language or a script; for example, 'Arabic' is both the name of a language and the name of a script. In fact, many scripts borrow their names from the names of languages. Further, many scripts are used for many languages; for example, the Russian and Bulgarian languages are written in the Cyrillic script. Some languages can be expressed using different scripts; the Mongolian language can be written in either the Mongolian and Cyrillic scripts, and the Serbo-Croatian language is written using both the Latin and Cyrillic scripts. Further, some languages are normally expressed with more than one script at the same time; for example, the Japanese language is normally expressed in the Kanji (Han), Katakana, and Hiragana scripts in a single string of text.
character
A member of a set of elements used for the organization, control, or representation of data.
There are at least three common definitions of the word 'character':
- a general description of a text entity
- a unit of a writing system, often synonymous with 'letter' or similar terms
- the encoded entity itself
When people talk about characters, they are mostly using one of the first two definitions.
A particular character is identified by its name, not by its shape. A name may suggest a meaning, but the character may be used for representing other meanings as well. A name may suggest
Hoffman Informational [Page 4]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
a shape, but that does not imply that only that shape is commonly used in print, nor that the particular shape is associated only with that name.
coded character
A character together with its coded representation.
coded character set
A coded character set (CCS) is a set of unambiguous rules that establishes a character set and the relationship between the characters of the set and their coded representation.
character encoding form
A character encoding form is a mapping from a character set definition to the actual code units used to represent the data.
repertoire
The collection of characters included in a character set. Also called a character repertoire.
glyph
A glyph is an abstract form that represents one or more glyph images. The term 'glyph' is often a synonym for glyph image, which is the actual, concrete image of a glyph representation having been rasterized or otherwise imaged onto some display surface. In displaying character data, one or more glyphs may be selected to depict a particular character. These glyphs are selected by a rendering engine during composition and layout processing.
glyph code
A glyph code is a numeric code that refers to a glyph. Usually, the glyphs contained in a font are referenced by their glyph code. Glyph codes are local to a particular font; that is, a different font containing the same glyphs may use different codes.
Hoffman Informational [Page 5]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
transcoding
Transcoding is the process of converting text data from one character encoding form to another. Transcoders work only at the level of character encoding and do not parse the text. Note: Transcoding may involve one-to-one, many-to-one, one-to-many or many-to-many mappings. Because some legacy mappings are glyphic, they may not only be many-to-many, but also discontinuous: thus XYZ may map to yxz.
In this definition, 'many-to-one' means a sequence of characters mapped to a single character. The 'many' does not mean alternative characters that map to the single character.
character encoding scheme
A character encoding scheme (CES) is a character encoding form plus byte serialization. There are many character encoding schemes in Unicode, such as UTF-8 and UTF-16.
Some CESs are associated with a single CCS; for example, UTF-8 [RFC2279] applies only to ISO/IEC 10646. Other CESs, such as ISO 2022, are associated with many CCSs.
charset
A charset is a method of mapping a sequence of octets to a sequence of abstract characters. A charset is, in effect, a combination of one or more CCSs with a CES. Charset names are registered by the IANA according to procedures documented in [RFC2278].
Many protocol definitions use the term 'character set' in their descriptions. The terms 'charset' or 'character encoding scheme' are strongly preferred over the term 'character set' because 'character set' has other definitions in other contexts and this can be confusing.
internationalization
In the IETF, 'internationalization' means to add or improve the handling of non-ASCII text in a protocol.
Many protocols that handle text only handle one script (often, the one that contains the letters used in English text), or leave the question of what character set is used up to local guesswork
Hoffman Informational [Page 6]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
(which leads, of course, to interoperability problems). Adding non-ASCII text to such a protocol allows the protocol to handle more scripts, hopefully all of the ones useful in the world.
localization
The process of adapting an internationalized application platform or application to a specific cultural environment. In localization, the same semantics are preserved while the syntax may be changed. [FRAMEWORK]
Localization is the act of tailoring an application for a different language or script or culture. Some internationalized applications can handle a wide variety of languages. Typical users only understand a small number of languages, so the program must be tailored to interact with users in just the languages they know.
The major work of localization is translating the user interface and documentation. Localization involves not only changing the language interaction, but also other relevant changes such as display of numbers, dates, currency, and so on. The better internationalized an application is, the easier it is to localize it for a particular language and character encoding scheme.
Localization is rarely an IETF matter, and protocols that are merely localized, even if they are serially localized for several locations, are generally considered unsatisfactory for the global Internet.
Do not confuse 'localization' with 'locale', which is described in Section 7 of this document.
i18n, l10n
These are abbreviations for 'internationalization' and 'localization'.
'18' is the number of characters between the 'i' and the 'n' in 'internationalization', and '10' is the number of characters between the 'l' and the 'n' in 'localization'.
multilingual
The term 'multilingual' has many widely-varying definitions and thus is not recommended for use in standards. Some of the definitions relate to the ability to handle international
Hoffman Informational [Page 7]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
characters; other definitions relate to the ability to handle multiple charsets; and still others relate to the ability to handle multiple languages.
displaying and rendering text
To display text, a system puts characters on a visual display device such as a screen or a printer. To render text, a system analyzes the character input to determine how to display the text. The terms 'display' and 'render' are sometimes used interchangeably. Note, however, that text might be rendered as audio and/or tactile output, such as in systems that have been designed for people with visual disabilities.
Combining characters modify the display of the character (or, in some cases, characters) that precede them. When rendering such text, the display engine must either find the glyph in the font that represents the base character and all of the combining characters, or it must render the combination itself. Such rendering can be straight-forward, but it is sometimes complicated when the combining marks interact with each other, such as when there are two combining marks that would appear above the same character. Formatting characters can also change the way that a renderer would display text. Rendering can also be difficult for some scripts that have complex display rules for base characters, such as Arabic and Indic scripts.
3. Standards Bodies and Standards
This section describes some of the standards bodies and standards that appear in discussions of internationalization in the IETF. This is an incomplete and possibly over-full list; listing too few bodies or standards can be just as politically dangerous as listing too many. Note that there are many other bodies that deal with internationalization; however, few if any of them appear commonly in IETF standards work.
3.1 Standards bodies
ISO
The International Organization for Standardization has been involved with standards for characters since before the IETF was started. ISO is a non-governmental group made up of national bodies. ISO has many diverse standards in the international characters area; the one that is most used in the IETF is commonly referred to as 'ISO/IEC 10646', although its official name has
Hoffman Informational [Page 8]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
more qualifications. (The IEC is International Electrotechnical Commission). ISO/IEC 10646 describes a CCS that covers almost all known written characters in use today.
ISO/IEC 10646 is controlled by the group known as 'ISO/IEC JTC 1/SC 2 WG2', often called 'WG2' for short. ISO standards go through many steps before being finished, and years often go by between changes to ISO/IEC 10646. Information on WG2, and its work products, can be found at .
The standard, which comes in multiple parts, can be purchased in both print and CD-ROM versions. One example of how to cite the standard is given in [RFC2279]. Any standard that cites ISO/IEC 10646 needs to evaluate how to handle the versioning problem that is relevant to the protocol's needs.
ISO is responsible for other standards that might be of interest to protocol developers. [ISO 639] specifies the names of languages, and [ISO 3166] specifies the abbreviations of countries. Character work is done in the group known as ISO/IEC JTC1/SC22 and ISO TC46, as well as other ISO groups.
Another relevant ISO group is JTC 1/SC22/WG20, which is responsible for internationalization in JTC1, such as for international string ordering. Information on WG20, and its work products, can be found at
Unicode Consortium
The second important group for international character standards is the Unicode Consortium. The Unicode Consortium is a trade association of companies, governments, and other groups interested in promoting the Unicode Standard [UNICODE]. The Unicode Standard is a CCS whose repertoire and code points are identical to ISO/IEC 10646. The Unicode Consortium has added features to the base CCS which make it more useful in protocols, such as defining attributes for each character. Examples of these attributes include case conversion and numeric properties.
The Unicode Consortium publishes addenda to the Unicode Standard as Unicode Technical Reports. There are many types of technical reports at various stages of maturity. The Unicode Standard and affiliated technical reports can be found at .
Hoffman Informational [Page 9]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
World Wide Web Consortium (W3C)
This group created and maintains the standard for XML, the markup language for text that has become very popular. XML has always been fully internationalized so that there is no need for a new version to handle international text.
local and regional standards organizations
Just as there are many native CCSs and charsets, there are many local and regional standards organizations to create and support them. Common examples of these are ANSI (United States), and CEN/ISSS (Europe).
3.2 Encodings and transformation formats of ISO/IEC 10646
Characters in the ISO/IEC 10646 CCS can be expressed in many ways. Encoding forms are direct addressing methods, while transformation formats are methods for expressing encoding forms as bits on the wire.
Basic Multilingual Plane (BMP)
The BMP is composed of the first 2^16 code points in ISO/IEC 10646. The BMP is also called 'plane 0'.
UCS-2 and UCS-4
UCS-2 and UCS-4 are the two encoding forms defined for ISO/IEC 10646. UCS-2 addresses only the BMP. Because many useful characters (such as many Han characters) have been defined outside of the BMP, many people would consider UCS-2 to be dead. Theoretically, UCS-4 addresses the entire range of 2^31 code points from ISO/IEC 10646 as 32-bit values. However, for interoperability with UTF-16, ISO 10646 restricts the range of characters that will actually be allocated to the values 0..0x10FFFF.
UTF-8
UTF-8, a transformation format specified in [RFC2279], is the preferred encoding for IETF protocols. Characters in the BMP are encoded as one, two, or three octets. Characters outside the BMP are encoded as four octets. Characters from the US-ASCII repertoire have the same on-the-wire representation in UTF-8 as they do in US-ASCII.
Hoffman Informational [Page 10]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
UTF-16, UTF-16BE, and UTF-16LE
UTF-16, UTF-16BE, and UTF-16LE, three transformation formats defined in [RFC2781], are not required by any IETF standards, and are thus used much less often than UTF-8. Characters in the BMP are always encoded as two octets, and characters outside the BMP are encoded as four octets. The three formats differ based on the order of the octets and the presence of a special lead-in mark called the 'byte order mark' or 'BOM'.
UTF-32
The Unicode Consortium has defined UTF-32 as a transformation format for UCS-4 in [UTR19].
SCSU and BOCU-1
The Unicode Consortium has defined an encoding, SCSU, which is designed to offer good compression for typical text. SCSU is described in [UTR6]. A different encoding that is meant to be MIME-friendly, BOCU-1, is described in [UTN6]. Although compression is attractive, as opposed to UTF-8 , neither of these (at the time of this writing) has attracted much interest in the IETF.
3.3 Native CCSs and charsets
Before ISO/IEC 10646 was developed, many countries developed their own CCSs and charsets. Many dozen of these are in common use on the Internet today. Examples include ISO 8859-5 for Cyrillic and Shift- JIS for Japanese scripts.
The official list of the registered charset names for use with IETF protocols is maintained by IANA and can be found at . The list contains preferred names and aliases. Note that this list has historically contained many errors, such as names that are in fact not charsets or references that do not give enough detail to reliably map names to charsets.
Probably the most well-known native CCS is ASCII [US-ASCII]. This CCS is used as the basis for keywords and parameter names in many IETF protocols, and as the sole CCS in numerous IETF protocols that have not yet been internationalized.
[UTR22] describes issues involved in mapping character data between charsets, and an XML format for mapping table data.
Hoffman Informational [Page 11]
RFC 3536 Terminology Used in Internationalization in the IETF May 2003
4. Character Issues
This section contains terms and topics that are commonly used in character handling and therefore are of concern to people adding non-ASCII text handling to protocols. These topics are standardized outside the IETF.
combining character
A member of an identified subset of the coded character set of ISO/IEC 10646 intended for combination with the preceding non- combining graphic character, or with a sequence of combining characters preceded by a non-combining character.
composite sequence
A sequence of graphic characters consisting of a non-combining character followed by one or more combining characters. A graphic symbol for a composite sequence generally consists of the combination of the graphic symbols of each character in the sequence. A composite sequence is not a character and therefore is not a member of the repertoire of ISO/IEC 10646.
In some CCSs, some characters consist of combinations of other characters. For example, the letter 'a with acute' might be a combination of the two characters 'a' and 'combining acute', or it might be a combination of the three characters 'a', a non- destructive backspace, and an acute. The rules for combining two or more characters are called 'composition rules', and the rules for taking apart a character into other characters is called 'decomposition rules'. The results of composition is called a 'precomposed character'; the results of decomposition is called a 'decomposed character'.
normalization
Normalization is the transformation of data to a normal form, for example, to unify spelling.
Note that the phrase 'unify spelling' in the definition above does not mean unifying different words with the same meaning (such as 'color' and 'colour'). Instead, it means unifying different character sequences that are intended to form the same composite characters (such as '' and ' tilde>').
Site Hosted By Digital Environments, Inc. This Website was Created with DE-Web Version 1.9.7.4, The Fast, Web Based - Website Design Tool, Groupware and Web Hosting System by Digital Environments, Inc. Groupware:Project Management, Sales Tracking, Web Site Design and News / Blogger all in one package.