The Linux Foundation

 
 
OpenI18N/openi18n-spec-2.0

From The Linux Foundation

OpenI18N Globalization Specification 2.0

Copyright © 2004 by Free Standards Group

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Portions of the text are copyrighted by the following parties:

The Open Group Technical Standard, System Interface Definition, Issue 5.


These excerpts are being used in accordance with their respective licenses.

Linux is a trademark of Linus Torvalds.

UNIX a registered trademark of the Open Group in the United States and other countries.

LSB is a trademark of the Free Standards Group in the USA and other countries. �


Table of Contents

Foreword 1. Scope 2. Normative References 3. Terms and Definitions 4. Conformance 5. Base Libraries 6. Shell and Utilities 7. Programming Lanuages 8. Graphical User Interface 9. Input Method 10. Output Method 11. Internet Tools Annex A Environment Variables Annex B Supported locales and codesets Annex C Publicly Available Specification Annex D GNU Free Documentation License �


Foreword

This is version 2.0 of the OpenI18N Globalization Specification. This version is a preliminary version for review only. Conclusion of work on this version will result in version 2.0 of the OpenI18N Globalization Specification.

Implmentations may not claim conformance to this version. �


1. Scope This document specifies interfaces and functionalities beyond LSB 1.9.8 that must be supported by operating systems to run internationalized application software. This document also includes recommendations for operating systems to ease development of internationalized application software.

This specification only lists internationalization aspects of each functionality provided by the conforming operating systems. �


2. Normative References

The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

Linux Standard Base 2.0.1, available at <http://refspecs.freestandards.org/lsb.shtml>

ISO/IEC 9899:1995, Programming Languages — C

ISO/IEC 9945-1:2003, Information Technology -- Portable Operating System Interface (POSIX) -- Part 1: Base Definitions

ISO/IEC 9945-2:2003, Information Technology -- Portable Operating System Interface (POSIX) -- Part 2: System Interfaces

ISO/IEC 9945-3:2003, Information Technology -- Portable Operating System Interface (POSIX) -- Part 3: Shell and Utilities

X/Open Curses (XCurses), Issue 4 Version 2, The Single UNIX Specification, Version 2 (The Open Group CAE Specification C610)

International Components for Unicode, Version 2.0 or followup compatible versions, available at <http://oss.software.ibm.com/icu/>

International Components for Unicode for Java, Version 2.0 or followup compatible versions, available at <http://oss.software.ibm.com/icu4j/>

Perl, Version 5.8.0 or followup compatible versions, available at <http://www.perl.com/ http://www.perl.com/CPAN-local/modules/00modlist.long.html#ID13_ Internationalization>

Java 2 Platform, Standard Edition, v1.3 API Specification or followup compatible versions, available at <http://java.sun.com/j2se/>

The X Window System, Version 11, Release 6, available at <ftp://ftp.x.org/pub/R6.4/xc/doc/hardcopy>

The Unicode Standard, Version 3.0, The Unicode Consortium, Addison-Wesley Developers Press, ISBN 0-201-61633-5

The Unicode Standard, Version 4.0, The Unicode Consortium, Addison-Wesley Developers Press, ISBN 0-321-18578-1

ISO/IEC 10646-1:2003, Information technology — Universal Multiple-Octet Coded Character Set(UCS)— Part 1: Architecture and Basic Multilingual Plane

ISO 639-1:2002, Code for the representation of names of languages - Part 1: Alpha-2 code

ISO 3166-1:1997, Codes for the representation of names of countries and their subdivisions — Part 1: Country codes

IANA Registry of Character Sets, available at <http://www.isi.edu/in-notes/iana/assignments/character-sets>

ISO/IEC 8859-1:1998 Information technology — 8-bit single-byte coded graphic character sets — Part 1: Latin alphabet No. 1

ISO/IEC 8859-2:1999 Information technology — 8-bit single-byte coded graphic character sets — Part 2: Latin alphabet No. 2

ISO/IEC 8859-5:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 5: Latin/ Cyrillic alphabet

ISO 8859-7:2003, Information processing — 8-bit single-byte coded graphic character sets — Part 7: Latin/ Greek alphabet

ISO/IEC 8859-9:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 9: Latin alphabet No. 5

ISO/IEC 8859-13:1998, Information technology — 8-bit single-byte coded graphic character sets — Part 13: Latin alphabet No. 7

ISO/IEC 8859-15:1999, Information technology — 8-bit single-byte coded graphic character sets — Part 15: Latin alphabet No. 9 �


3. Terms and Definitions

For the purposes of this document, the following definitions apply.

3.1. Defintions defined in ISO/IEC Directives, Part 2, 2001, 4th Edition

can

   be able to; there is a possibility of; it is possible to
  

cannot

   be unable to; there is no possibilty of; it is not possible to
  

may

   is permitted; is allowed; is permissible
  

need not

   it is not required that; no...is required
  

shall

   is to; is required to; it is required that; has to; only...is permitted; it
   is necessary
  

shall not

   is not allowed [permitted] [acceptable] [permissible]; is required to be
   not; is required that...be not; is not to be
  

should

   it is recommended that; ought to
  

should not

   it is not recommended that; ought not to


3.2. Terms

Implementation-defined A value or behavior is implementation-defined when it is left to the implementation to define [and document] the corresponding requirements for correct application behavior.

Supported Certain facilities in this specification are optional. If a facility is supported, it behaves as specified by this specification. If a facility is "supported" by an implementation, the implementation must document how to obtain and install the facility, or the facility is installed by installer of the implementation by explicitly selected by the user or implicitly installed with other system components. If an implementation "supports" a facility, the distributor of the implementation shall commit that the facility can run on the implementation.

Unspecified When a value or behavior is unspecified, the specification defines no portability requirements for a facility on an implementation even when faced with an application that uses the facility. An application that requires specific behavior in such an instance, rather than tolerating any behavior when using that facility, is not a portable application.

Provided Certain facilities in this specification are mandatory and implemented in all conforming implementations.

Obsolescence The indication of that subject statement or clause will be removed from future revision of this standard.

character A sequence of one or more bytes representing a single graphic symbol or control code. This term corresponds to the ISO C standard term multibyte character (multi-byte character), where a single-byte character is a special case of a multi-byte character. Unlike the usage in the ISO C standard, character here has no necessary relationship with storage space, and byte is used when storage space is discussed. See ISO/IEC 9945-1:2003.

byte An individually addressable unit of data storage that is equal to or larger than an octet, used to store a character or a portion of a character; see character. A byte is composed of a contiguous sequence of bits, the number of which is implementation-dependent. The least significant bit is called the low-order bit; the most significant is called the high-order bit. Note that this definition of byte deviates intentionally from the usage of byte in some international standards, where it is used as a synonym for octet (always eight bits). On a system based on the ISO/ IEC 9945-2: 1993 standard, a byte may be larger than eight bits so that it can be an integral portion of larger data objects that are not evenly divisible by eight bits (such as a 36-bit word that contains four 9-bit bytes). See ISO/IEC 9945-1:2003.

character set A finite set of different characters used for the representation, organization or control of data. See ISO/IEC 9945-1:2003.

coded character set A set of unambiguous rules that establishes a character set and the one-to-one relationship between each character of the set and its bit representation. ISO/IEC 9945-1:2003.

codeset The result of applying rules that map a numeric code value to each element of a character set. An element of a character set may be related to more than one numeric code value but the reverse is not true. However, for state-dependent encodings the relationship between numeric code values to elements of a character set may be further controlled by state information. The character set may contain fewer elements than the total number of possible numeric code values; that is, some code values may be unassigned. See ISO/IEC 9945-1:2003.

internationalization The provision within a computer program of the capability of making itself adaptable to the requirements of different native languages, local customs and coded character sets. See ISO/IEC 9945-1:2003.

globalization A product development approach which ensures that software products are usable in the worldwide markets through a combination of internationalization and localization.

locale The definition of the subset of a user's environment that depends on language and cultural conventions. See ISO/IEC 9945-1:2003.

localization The process of establishing information within a computer system specific to the operation of particular native languages, local customs and coded character sets. See ISO/IEC 9945-1:2003.

local customs The conventions of a geographical area or territory for such things as date, time and currency formats. See ISO/IEC 9945-1:2003.

portable filename character set The set of characters from which portable filenames are constructed. For a filename to be portable across implementations conforming to this specification set and the ISO/IEC 9945-2:2003 standard, it must consist only of the following characters:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 . _ -

The last three characters are the period, underscore and hyphen characters, respectively. The hyphen must not be used as the first character of a portable filename. Upper-and lower-case letters retain their unique identities between conforming implementations. In the case of a portable pathname, the slash character may also be used. See ISO/IEC 9945-1:2003.

file-system-safe character Multibyte character which does not contain either 0x00 or 0x2F in any byte of its representation.

Input Method Engine A part or a module of building block of input method which implements a language-or a script-specific logic of composing a string from one or more sequence of event or a string, which can be independent from windowing system, graphical user interface, or visual appearance. �


4. Conformance

4.1 General

Conformance to LSB 2.0 is the prerequisite condition for the conformance to this standard.

4.2 Conforming Environments

For conformance purposes the following environments are defined:

- End User Environment End User Environment is an operating system environment with user interface. It is assumed that End User Environment has a set of utilities for user interaction.

- Desktop Environment Desktop Environment is an operating system environment suitable for end user interaction. Graphical user interface is required in this environment.

The following sections are applied to Desktop Environment: - Base Libraries - Shells and Utilities - Programming Languages (with Software Development Options) - Graphical User Interface - Input Methods - Output Methods - Internet Tools

If an interface or utility is defined as "supported in End User Environment", that interface or utility shall be available in Desktop Environment.

4.3 Software Development Options

The following options can be supported in Desktop Environment: If any of these options is supported, utilities, libraries and associated modules to develop internationalized software (such as compilers or interpreters) shall be provided.

In this version of the specification, the following options are available: C Language Development Option Java Language Development Option


4.4 Conformance Levels

Several levels are defined for conformance for each environment. These levels are defined as follows:

- Level 1 The level 1 is the bottom-line level of conformance. All conforming implementations shall provide this level of interfaces and utilities to conform to this specification. If level is not specified in the specification, that specification shall be considered as Level 1.

- Level 2 The level 2 is more advanced or extended level of conformance. Conforming implementations are encouraged to provide this level of interfaces and utilities to conform to this specification, but it is not mandatory.



5. Base Libraries

5.1 Scope

This chapter defines runtime library interfaces required to conform to this specification. Conforming implementations shall provide the following C language APIs. In addition to the C language interface, conforming level 2 implementations shall provide interfaces for other programming languages.

5.2 Requirements

Conforming implementations shall provide the environment variables specified in Annex A.

Conforming implementations shall support the application execution environments specified in Annex B

Conforming level 2 implementations shall define _XOPEN_ CURSES version test macro and provide the internationalized curses library functions which are specified in X/Open Curses(XCurses), Issue 4 Version 2.

Conforming level 2 implementations shall support Java Runtime environment, specified in Java 2 Platform, Standard Edition. Internationalization Components for Unicode, International Components for Unicode for Java, and Perl execution environment Perl including Perl interpreter and modules. �


6. Shells and Utilities

6.1 Scope

This chapter defines runtime environment required to support traditional UNIX command interpreter called "shell" and other basic utilities defined in ISO/IEC 9945-3:2003.

6.2 Requirements

Shell implementation

Conforming level 1 implementations shall be able to use Portable Filename Character Set defined in ISO/IEC 9945-3:2003.

Conforming level 2 implementations shall be able to use file-system-safe characters as arguments and filenames.

Conforming level 2 implementations shall implement the globbing functionality of the shell as defined in ISO/IEC 9945-3:2003.

The utilities implementation

6.2.1 Locale

Conforming implementations shall provide the following utilities to generate and refer to locale definitions as specified in ISO/IEC 9945-3:2003: The localedef utility shall have the capability to accept charmap for UTF-8, at least.

locale localedef

6.2.2 Text Editor

Conforming implementations shall provide the following utilities to edit text files encoded in the supported codesets as specified in ISO/IEC 9945-3:2003.

Note: To edit text is to determine character boundaries correctly and perform operations such as insert, copy and delete characters based on the determined character boundaries. Input and output requirements are specified in 10. Input Methods and 11. Output Methods respectively.

ed ex vi

6.2.3 Text Processing

Conforming implementations shall provide the following utilities to process text as specified in ISO/IEC 9945-3:2003. mailx nm (symbol sorting order )

The mailx utility can be implemented as Mail.

6.2.4 Regular Expressions

On conforming level 2 implementations, the following utilities that process regular expressions shall have capability to handle Basic Regular Expression (BRE) and Extended Regular Expression (ERE) as specified in ISO/IEC 9945-3:2003.

The following utilities are relevant: egrep grep sed awk

6.2.5 Filename Handling

Conforming implementations shall provide the following utilities to correctly handle filenames that use file-system-safe characters. On conforming level 2 implementations, the following utilities shall have capability of filename globbing functionality as specified in ISO/IEC 9945-3:2003.

cpio find ls tar

6.2.6 General Text Editor

Conforming implementations shall support at least one text editor that can edit text encoded in UTF-8. Note: To edit text is to determine character boundaries correctly and perform operations such as insert, copy and delete characters based on the determined character boundaries. Input and output requirements are specified in 7. Input Methods and 8. Output Methods respectively.

6.2.7 Terminal Emulator

Conforming implementations shall support terminal emulators that can handle codesets for supported locales. Conforming implementations should support terminal emulation for all supported locales, but an implementation may provide different terminal emulators for each locale.

6.2.8 Message catalogs

Conforming implementations with C Language Development Option shall provide the following utilities to create and update message catalog source files as specified in Annex C.

msgmerge xgettext �


7. Programming Languages

7.1 Scope

This chapter defines the requirements for various programming languages. Only programming languages with internationalization requirements are listed here. Note that the specifications defined by this chapter shall be provided by conforming implementations if the relevant Software Development Option is supported.

7.2 Requirements

Conforming level 2 implementations with Software Development Options shall support the compiler or interpreter for the following languages:

C (if the implementation supports the C Language Development Option) Java (if the implementation supports the Java Language Development Option) Perl Each programming language shall be internationalized as specified in the following specifications: C language as specified in ISO/IEC 9899:1995. Java language as specified in Java 2 Platform, Standard Edition. Perl language as specified in Perl, Version 5.8.0 or followup compatible versions.

Note: See 3. Base Libraries about runtime environment of Perl and Java languages. �


8. Graphical User Interface

8.1 Graphic Libraries

8.1.1 Scope

This chapter defines runtime library interfaces for graphical user interface (GUI). Conforming implementations shall provide the X Window System Version 11 Release 6 graphical user interface specified in Linux Standard Base.

8.1.2 Requirements

Conforming level 2 implementations shall support languages listed in Annex B. Conforming level 1 implementations need not to support languages that require complex text layout (the applicable languages are marked in the table in Annex B).

8.2 Graphic Toolkits and X Window Servers

8.2.1 Scope

This chapter defines the requirements for graphic toolkits supported on top of the X Window System and the X Window System servers.

8.2.2 Requirements

Graphic Toolkits There are no requirements beyond Linux Standard Base on the Graphic Toolkits in terms of internationalization. X Window Servers

There are no requirements beyond Linux Standard Base on the X Window Servers in terms of internationalization. �


9. Input Methods

9.1 Scope

This chapter defines the requirements for text input used by the X Window System and other environments. Such mechanism is needed to support non-Western languages (for example, Chinese, Japanese and Korean).

9.2 Requirements

Conforming implementations shall provide means, i. e., Input Method(s) for user to input characters specified in the Annex B: Supported locales and codesets.

Conforming implementations shall provide Input Method Server(s) which can connect with Input Method Engines of the supported locales. An Input Method Engine can be implemented as a separate process communicating with an Input Method Server or can be integrated into the X Input Method Server.

Conforming implementations shall support Input Method Engines for the supported locales, that can be connected with the above Input Method Server(s). The conforming implementations shall document which Input Method Engines are supported by the above Input Method Server(s) and how user can get and install the Engines into the conforming implementations.

The Input Method Server(s) should have a capability to switch Input Method Engines dynamically, but a conforming implementation may provide multiple Input Method Servers per locale.

Conforming level 1 implementations should provide an Input Method Server which supports UTF-8 encoding and allows user to input whole repertoire of The Unicode Standard, Version 3.0.

Conforming level 2 implementations shall provide an Input Method Server which supports UTF-8 encoding and allows user to input whole repertoire of The Unicode Standard, Version 4.0.

Note: User-friendly input operation is preferable, but it is acceptable to use non-user-friendly input operation, such as entering hexadecimal code points, to input not-so-frequently-used characters. Also note that the input requirement does not imply that the input characters are displayed correctly.

Conforming implementations may provide Input Method Server(s) which supports locale specific character repertoire and locale specific character encodings.

Every application that has X Window System based GUI and has a capability to accept character input from users should have the interface with the above Input Method Server(s).

Conforming implementations should provide means for user to input characters specified in the supported locale through Console and TTY device interfaces. �


10. Output Methods

10.1 Scope

This chapter defines the requirements for text output used by the X Window System. Such mechanism is needed to support languages that require complex text rendering.

10.2 Requirements

Conforming implementations shall provide means, i. e., Output Method(s), for user to output characters specified in the Annex B: Supported locales and codesets.

Conforming implementations shall provide X Output Method interface defined in The X Window System, Version 11, Release 6 Xlib, specification chapter 13 as a displaying primitive for X Window System.

Conforming level 1 implementations should provide multibyte and wide character interface which cover the following collections of UCS implementation level 1 defined in ISO 10646-1:2003.

Conforming level 2 implementations shall provide multibyte and wide character interface which cover the following collections of UCS implementation level 1 defined in ISO 10646-1:2003.

Note: ISO 10646-1:2003 defines character blocks for subsetting purpose and are called character collections. Such character collections are used here to indicate minimum displayable subset.

1 BASIC LATIN 0020-007E 2 LATIN-1 SUPPLEMENT 00A0-00FF 3 LATIN EXTENDED-A 0100-017F 4 LATIN EXTENDED-B 0180-024F 5 IPA EXTENSIONS 0250-02AF 8 BASIC GREEK 0370-03CF 9 GREEK SYMBOLS AND COPTIC 03D0-03FF 10 CYRILLIC 0400-04FF 11 ARMENIAN 0530-058F 27 BASIC GEORGIAN 10D0-10FF 30 LATIN EXTENDED ADDITIONAL 1E00-1EFF 31 GREEK EXTENDED 1F00-1FFF 32 GENERAL PUNCTUATION 2000-206F (only graphical characters) 33 SUPERSCRIPTS AND SUBSCRIPTS 2070-209F 34 CURRENCY SYMBOLS 20A0-20CF 36 LETTERLIKE SYMBOLS 2100-214F 37 NUMBER FORMS 2150-218F 38 ARROWS 2190-21FF 39 MATHEMATICAL OPERATORS 2200-22FF 40 MISCELLANEOUS TECHNICAL 2300-23FF 41 CONTROL PICTURES 2400-243F 42 OPTICAL CHARACTER RECOGNITION 2440-245F 44 BOX DRAWING 2500-257F 45 BLOCK ELEMENTS 2580-259F 46 GEOMETRIC SHAPES 25A0-25FF 47 MISCELLANEOUS SYMBOLS 2600-26FF 49 CJK SYMBOLS AND PUNCTUATION 3000-303F 50 HIRAGANA 3040-309F 51 KATAKANA 30A0-30FF 52 BOPOMOFO 3100-312F 54 CJK MISCELLANEOUS 3190-319F 55 ENCLOSED CJK LETTERS AND MONTHS 3200-32FF 56 CJK COMPATIBILITY 3300-33FF 60 CJK UNIFIED IDEOGRAPHS 4E00-9FFF 62 CJK COMPATIBILITY IDEOGRAPHS F900-FAFF 66 CJK COMPATIBILITY FORMS FE30-FE4F 69 HALFWIDTH AND FULLWIDTH FORMS FF00-FFEF 71 HANGUL EXTENDED AC00-D7A3 76 YI SYLLABLES A000-A48F 77 YI RADICALS A490-A4CF 81 CJK UNIFIED IDEOGRAPHS EXTENSION A 3400-4DBF

Conforming implementations should provide an X Output Method which supports the encoding schemes listed in Annex B.

Conforming implementations shall provide a terminal emulator on the X Window System that output characters in the supported locale.

Conforming implementations should provide console or tty device interface that output characters in the supported locale. �


11. Internet Tools

11.1 Scope

This chapter defines the requirements for Internet client tools, such as WWW browsers and Mail User Agents (MUAs).

11.2 Requirements

Conforming implementations shall make at least one codeset available per locale specified in Annex B.

The supported codeset should be in IANA Registry of Character Sets Conforming level 2 implementations of Web browsers and mail user agents shall be able to input and output whole repertoire of The Unicode Standard, Version 3.0.

Note: Character output is restricted as specified in 8. Output Methods. �


Annex A (Normative): Environment Variables

Conforming implementations shall provide the following environment variables that are relevant to the operation of internationalized interfaces or internationalized commands and utilities.

LANG LC_ ALL LC_ COLLATE LC_ CTYPE LC_ MESSAGES LC_ MONETARY LC_ NUMERIC LC_ TIME NLSPATH The usage and the semantics of these environment variables shall be the same as the description in "8.2 Internationalization Variables" in ISO/IEC 9945-1:2003. �


Annex B (Normative): Supported locales and codesets

Conforming implementations shall provide handling capability of the following locales. C POSIX

Conforming implementations shall support following locales.

Note 1: The language names come from ISO 639-1:2002. Note 2: To avoid political discussion, the region/ country names used here does not strictly follow ISO 3166-1:1997.

af_ ZA  Afrikaans	SOUTH AFRICA		[Support of this locale is level 2]
ar_ AE	 Arabic		UNITED ARAB EMIRATES	[Output method support is level 2]
ar_ BH			BAHRAIN			[Output method support is level 2]
ar_ DZ			ALGERIA			[Output method support is level 2]
ar_ EG			EGYPT			[Output method support is level 2]
ar_ IN			INDIA			[Support of this locale is level 2]
						[Output method support is level 2]
ar_ IQ			IRAQ			[Output method support is level 2]
ar_ JO			JORDAN			[Output method support is level 2]
ar_ KW			KUWAIT			[Output method support is level 2]
ar_ LB			LEBANON			[Output method support is level 2]
ar_ LY			LIBYAN ARAB JAMAHIRIYA	[Output method support is level 2]
ar_ MA			MOROCCO			[Output method support is level 2]
ar_ OM			OMAN			[Output method support is level 2]
ar_ QA			QATAR			[Output method support is level 2]
ar_ SA			SAUDI ARABIA		[Output method support is level 2]
ar_ SD			SUDAN			[Output method support is level 2]
ar_ SY			SYRIAN ARAB REPUBLIC	[Output method support is level 2]
ar_ TN			TUNISIA			[Output method support is level 2]
ar_ YE			YEMEN			[Output method support is level 2]
as_ IN	Assamese	INDIA			[Support of this locale is level 2]
						[Output method support is level 2]
be_ BY	Byelorussian	BELARUS
bg_ BG	Bulgarian	BULGARIA
bn_ IN	Bengali		INDIA			[Support of this locale is level 2]
						[Output method support is level 2] 
ca_ ES	Catalan		SPAIN
cs_ CZ	Czech		CZECH REPUBLIC
da_ DK	Danish		DENMARK
de_ AT	German		AUSTRIA
de_ BE			BELGIUM 		[Support of this locale is level 2]
de_ CH			SWITZERLAND
de_ DE			GERMANY
de_ LU			LUXEMBOURG
el_ GR	Greek		GREECE
en_ AU	English		AUSTRALIA
en_ BE			BELGIUM
en_ BW			BOTSWANA		[Support of this locale is level 2]
en_ CA			CANADA
en_ GB			UNITED KINGDOM
en_ HK			HONG KONG		[Support of this locale is level 2]
en_ IE			IRELAND
en_ IN			INDIA			[Support of this locale is level 2]
en_ NZ			NEW ZEALAND
en_ PH			PHILIPPINES		[Support of this locale is level 2]
en_ SG			SINGAPORE		[Support of this locale is level 2]
en_ US			UNITED STATES
en_ ZA			SOUTH AFRICA
en_ ZW			ZIMBABWE		[Support of this locale is level 2]
es_ AR	Spanish		ARGENTINA
es_ BO			BOLIVIA
es_ CL			CHILE
es_ CO			COLOMBIA
es_ CR			COSTA RICA
es_ DO			DOMINICAN REPUBLIC
es_ EC			ECUADOR
es_ ES			SPAIN
es_ GT			GUATEMALA
es_ HN			HONDURAS
es_ MX			MEXICO
es_ NI			NICARAGUA
es_ PA			PANAMA
es_ PE			PERU
es_ PR			PUERTO RICO
es_ PY			PARAGUAY
es_ SV			REPUBLIC OF EL SALVADOR
es_ UY			URUGUAY
es_ VE			VENEZUELA
et_ EE	Estonian	ESTONIA
eu_ ES	Basque		SPAIN			[Support of this locale is level 2]
fa_ IN	Persian		INDIA			[Support of this locale is level 2]
           					[Output method support is level 2]
fa_ IR			IRAN, ISLAMIC REPULIC OF [Support of this locale is level 2]
                              			[Output method support is level 2]
fi_ FI	Finnish		FINLAND
fo_ FO	Faroese		FAROE ISLANDS
fr_ BE	French		BELGIUM
fr_ CA			CANADA
fr_ CH			SWITZERLAND
fr_ FR			FRANCE
fr_ LU			LUXEMBOURG
ga_ IE	Irish		IRELAND
gl_ ES	Galician	SPAIN			[Support of this locale is level 2]
gu_ IN	Gujarati	INDIA			[Support of this locale is level 2]
                     				[Output method support is level 2]
gv_ GB	Manx Gaelic	UNITED KINGDOM		[Support of this locale is level 2]
he_ IL	Hebrew		ISRAEL			[Output method support is level 2]
hi_ IN	Hindi		INDIA			[Support of this locale is level 2]
      						[Output method support is level 2]
hr_ HR	Croatian	CROATIA
hu_ HU	Hungarian	HUNGARY
id_ ID	Indonesian	INDONESIA		[Support of this locale is level 2]
is_ IS	Icelandic	ICELAND
it_ CH	Italian		SWITZERLAND
it_ IT			ITALY
ja_ JP	Japanese	JAPAN
kl_ GL	Greenlandic	GREENLAND
kn_ IN	Kannada		INDIA			[Support of this locale is level 2]
                  				[Output method support is level 2]
ko_ KR	Korean		KOREA, REPUBLIC OF
ks_ IN	Kashmiri	INDIA			[Support of this locale is level 2]
          					[Output method support is level 2]
kw_ GB	Cornish		UNITED KINGDOM		[Support of this locale is level 2]
lt_ LT	Lithuanian	LITHUANIA
lv_ LV	Latvian, Lettish LATVIA
mk_ MK	Macedonian	MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF
ml_ IN	Malayalam	INDIA			[Support of this locale is level 2]
                   				[Output method support is level 2]
ms_ MY	Malay		MALAYSIA		[Support of this locale is level 2]
nl_ BE	Dutch		BELGIUM
nl_ NL			NETHERLANDS
no_ NO	Norwegian	NORWAY
or_ IN	Oriya		INDIA			[Support of this locale is level 2]
                				[Output method support is level 2]
pa_ IN	Punjabi		INDIA			[Support of this locale is level 2]
                    				[Output method support is level 2]
pl_ PL	Polish		POLAND
ps_ IN	Pashto, Pushto INDIA			[Support of this locale is level 2]
                           			[Output method support is level 2]
pt_ BR	Portuguese	BRAZIL
pt_ PT			PORTUGAL
ro_ RO	Romanian	ROMANIA
ru_ RU	Russian		RUSSIAN FEDERATION
ru_ UA			UKRAINE			[Support of this locale is level 2]
sd_ IN	Sindhi		INDIA			[Support of this locale is level 2]
                   				[Output method support is level 2]
sh_ YU	Serbo-Croatian YUGOSLAVIA
sk_ SK	Slovak		SLOVAKIA
sl_ SI	Slovenian	SLOVENIA
sq_ AL	Albanian	ALBANIA
sr_ YU	Serbian		YUGOSLAVIA
sv_ FI	Swedish		FINLAND
sv_ SE			SWEDEN
ta_ IN	Tamil		INDIA			[Support of this locale is level 2]
                  				[Output method support is level 2]
te_ IN	Telugu		INDIA			[Support of this locale is level 2]
                   				[Output method support is level 2]
th_ TH	Thai		THAILAND
tr_ TR	Turkish		TURKEY
uk_ UA	Ukrainian	UKRAINE
ur_ IN	Urdu		INDIA			[Support of this locale is level 2]
                 				[Output method support is level 2]
vi_ VN	Vietnamese	VIETNAM
zh_ CN	Chinese		CHINA
zh_ HK			HONG KONG
zh_ SG			SINGAPORE		[Support of this locale is level 2]
zh_ TW			TAIWAN 

Conforming implementations shall make at least UTF-8 coded character set usable under the above locale environments. Conforming implementations in level 2 also may make other coded character sets, including the following codesets, usable under some of the above locale environments.

ISO/IEC 8859-1:1998 ISO/IEC 8859-2:1999 ISO/IEC 8859-5:1999 ISO/IEC 8859-7:2003 ISO/IEC 8859-9:1999 ISO/IEC 8859-13:1998 ISO/IEC 8859-15:1999

Korean EUC Japanese EUC Simplified Chinese EUC Traditional Chinese EUC

If an implementation supports non UTF-8 codesets, the implementation shall support codeset conversions between the supported codesets and UTF-8 (for both directions) by iconv utility and iconv family functions (iconv(), iconv_ open() and iconv_ close()). �


Annex C (Normative): Publicly Available Specification

C. 1 xgettext utility NAME

xgettext — extract gettext call strings from C programs SYNOPSIS

xgettext [ options ] filename ... DESCRIPTION The xgettext utility is used to automate the creation of portable message files ( .po ). A .po file contains copies of the C language strings that are found in ISO C source code in filename or the standard input if -is specified on the command line. The .po file can be used as input to the msgfmt utility, which produces a binary form of the message file that can be used by application during run-time.

xgettext writes msgid strings from gettext() calls in filename to the default output file messages. po . The default output file name can be changed by -d option. msgid strings in dgettext() calls are written to the output file domainname .po where domainname is the first parameter to the dgettext() call.

By default, xgettext creates a .po file in the current working directory, and each entry is in the same order the strings are extracted from filenames. When the -p option is specified, the .po file is created in the pathname directory. An existing .po file is overwritten. Duplicate msgid s are written to the .po file as comment lines. When the -s option is specified, the .po is sorted by the msgid string, and all duplicated msgid s are removed. All msgstr directives in the .po file are empty unless the -m option is used. OPTIONS

-a --extract-all Extract all strings, not just those found in gettext() and dgettext() calls. Only one .po file is created.

-c[ comment-tag ] --add-comments[ =comment-tag ] The comment block beginning with comment-tag as the first token of the comment

block is added to the output .po file as # delimited comments. For multiple domains, xgettext directs comments and messages to the prevailing text domain. -C --c++ Recognize C++ style comments.

-d default-domain --default-domain= default-domain Rename default output file from messages. po to default-domain .po . The special domain name -means to write the output to the standard output. -D directory --directory= directory Change to directory before beginning to search and scan source files. The

resulting .po file will be written relative to the original directory, though. --debug Use the flags c-format and possible-c-format to show who was responsible for marking a message as a format string. The later form is used if the xgettext utility decided, the format form is used if the programmer prescribed it.

By default only the c-format form is used. The translator should not have to care about these details.

-e --no-escape Do not use C escapes in output (default).

-E --escape Use C escapes in output if non-ASCII characters are used.

-f file --files-from= file Read the names of the input files from file instead of getting them from the

command line. If -is specified as file, the standard input is read. -F --sort-by-file Sort output by file location.

--force-po Always write output file even if no message is defined. -i --indent Write the .po file using indented style. -j --join-existing Join messages with existing message files. If a .po file does not exist, it is created. If a .po file does exist, new messages are appended. Any duplicate msgid s are commented out in the resulting .po file. Domain directives in the existing .po file are ignored. Results not guaranteed if the existing message file has been edited.

-k[ keywordspec ] --keyword[= keywordspec ] Specify additional keyword to be looked for (without keywordspec means not to use

default keywords). If keywordspec is a C identifier id, xgettext looks for strings in the first argument of each call to the function or macro id. If keywordspec is of the form id : argnum,

xgettext looks for string in the argnumth argument of the call. If keywordspec is of the form id

argnum1 , argnum2, xgettext looks for strings in the argnum1st argument and in the argnum2nd argument of the call, and treats them as

singular/ plural variants for a message with plural handling. The default keywords, which are always looked for if not explicitly disabled, are

gettext , dgettext: 2 , dcgettext: 2 , ngettext: 1,2 , dngettext: 2, 3 , dcngettext: 2,3 and gettext_ noop . -L name --language= name Recognize the specified language. Valid values are C , C++ , and PO . Otherwise the language is guessed from file extension.

-m[ prefix ] --msgstr-prefix[= prefix ] Fill in the msgstr with prefix. This is useful for debugging purposes. To make msgstr identical to msgid , use an empty string ( "" ) for prefix. -M[ suffix ] --msgstr-suffix[= suffix ] Fill in the msgstr with suffix. This is useful for debugging purposes. -n --add-location Add comment lines to the output file indicating file name and line number in the source

file where each extracted string is encountered (default). These lines appear before each msgid in the following format:

  1. filename : line

--no-location Do not write

  1. filename : line lines.

-o file --output= file Write output to the specified file. -p pathname --output-dir= pathname Specify the directory where the output files will be placed. This option overrides the

current working directory. -s --sort-output Generate output sorted by msgid s with all duplicate msgid s removed. --strict Write out strict UniForum conforming PO file.

-T --trigraphs Understand ISO C trigraphs for input.

-w number --width= number Limit the output lines to number columns.

-x exclude-file --exclude-file= exclude-file Specify a .po file that contains a list of msgid s that are not to be extracted from the input files. The format of exclude-file is identical to the .po file. However, only the msgid directive line in exclude-file is used. All other lines are simply ignored. The -x option can only be used with the -a option. OPERANDS

The operands are pathnames to the C or C++ language source files. STDIN The standard input is not used unless a filename operand is specified as -. INPUT FILES The input files are text files. ENVIRONMENT VARIABLES

LANGUAGE Specifies one or more locale names. See C. 1 gettext message handling functions for more information. LANG Specifies default locale name. LC_ ALL Specifies locale name for all categories. If defined, overrides LANG, LC_ CTYPE and LC_ MESSAGES. LC_ CTYPE Specifies locale name for character handling. LC_ MESSAGES Specifies messaging locale, and if present overrides LANG for messages. STDOUT The standard output is not used unless the option-argument to the -o option is specified as

-. STDERR

The standard error is used only for diagnostic messages. OUTPUT FILES The output files are text files. EXTENDED DESCRIPTION None. EXIT STATUS The following exit values are returned:

0 Successful completion. >0 An error occurred. APPLICATION USAGE

xgettext is not able to extract cast strings, for example ISO C casts of literal strings to (const char *) . This is unnecessary anyway, since the prototypes in <libintl. h> already specify this type.

EXAMPLES None. FUTURE DIRECTIONS None. C. 2 msgmerge utility NAME

msgmerge — merge two portable object files SYNOPSIS

msgmerge [ options ] def. po ref. po DESCRIPTION The msgmerge utility merges two UniForum style .po files together. The def. po file is an existing PO file with the old translations which will be taken over to the newly created file as long as they still match; comments will be preserved, but extract comments and file positions will be discarded. The ref. po file is the last created PO file (generally by xgettext ), any translations or comments in the file will be discarded, however dot comments ( #. comments) and file positions ( #: comments) will be preserved. Where an exact match cannot be found, fuzzy matching is used to produce better results. The results are written to the standard output unless an output file is specified. OPTIONS

-D directory --directory= directory Change to directory before beginning to search and scan source files. The

resulting .po file will be written relative to the original directory, though. -e --no-escape Do not use C escapes in output (default).

-E --escape Use C escapes in output if non-ASCII characters are used.

--force-po Always write output file even if no message is defined. -i --indent Write the .po file using indented style. -o file --output-file= file Write output to the specified file.

--add-location Add comment lines to the output file indicating file name and line number in the source file where each extracted string is encountered (default). These lines appear before each msgid in the following format:

  1. filename : line ...

--no-location Do not write

  1. filename : line lines.

--strict Write out strict UniForum conforming PO file.

-w number --width= number Limit the output lines to number columns.

OPERANDS The following operands are supported: def. po

The def. po operand is a pathname of the message portable object file that may have translated text. ref. po

The ref. po operand is a pathname of the message portable object file newly generated by the xgettext utility with modified program source files. This file may contain newly introduced message strings or modified message strings, and the

msgmerge utility will detect such changes and merge the changes to def. po. STDIN

The standard input is not used unless def. po or ref. po operand is specified as -. INPUT FILES The input files are text files. ENVIRONMENT VARIABLES

LANGUAGE Specifies one or more locale names. See C. 1 gettext message handling functions for more information. LANG Specifies default locale name. LC_ ALL Specifies locale name for all categories. If defined, overrides LANG, LC_ CTYPE and LC_ MESSAGES. LC_ CTYPE Specifies locale name for character handling. LC_ MESSAGES Specifies messaging locale, and if present overrides LANG for messages. STDOUT The standard output is used to write merged result unless -o option is specified. STDERR The standard error is used only for diagnostic messages. OUTPUT FILES The output files are text files. EXTENDED DESCRIPTION None. EXIT STATUS The following exit values are returned:

0 Successful completion. >0 An error occurred. APPLICATION USAGE

None. EXAMPLES None. FUTURE DIRECTIONS None. �


Annex D : GNU Free Documentation License

Version 1.1, March 2000 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

D. 1 PREAMBLE

The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

D. 2 APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".

A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/ or translated into another language.

A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.

The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.

A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/ or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.

The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.

D. 3 VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you may publicly display copies.

D. 4 COPYING IN QUANTITY

If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

D. 5 MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.

B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).

C. State on the Title page the name of the publisher of the Modified Version, as the publisher.

D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.

G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.

H. Include an unaltered copy of this License. I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.

K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.

L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.

M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.

N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.

If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.

You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

D. 6 COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.

The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements." D. 7 COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. D. 8 AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate. D. 9 TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail. D. 10 TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. D. 11 FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. D. 12 How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".

If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.


[Article] [Discussion] [View source] [History]