'name' - Naming Table

The naming table allows multilingual strings to be associated with the TrueType font file. These strings can represent copyright notices, font names, family names, style names, and so on. To keep this table short, the font manufacturer may wish to make a limited set of entries in some small set of languages; later, the font can be "localized" and the strings translated or added. Other parts of the TrueType font file that require these strings can then refer to them simply by their index number. Clients that need a particular string can look it up by its platform ID, character encoding ID, language ID and name ID. Note that some platforms may require single byte character strings, while others may require double byte strings.

The Naming Table is organized as follows:

Type

Description

USHORT

Format selector (=0).

USHORT

Number of NameRecords that follow n.

USHORT

Offset to start of string storage (from start of table).

n NameRecords

The NameRecords.

(Variable)

Storage for the actual string data.


Each NameRecord looks like this:

Type

Description

USHORT

Platform ID.

USHORT

Platform-specific encoding ID.

USHORT

Language ID.

USHORT

Name ID.

USHORT

String length (in bytes).

USHORT

String offset from start of storage area (in bytes).


Following are the descriptions of the four kinds of ID. Note that the specific values listed here are the only ones that are predefined; new ones may be added by registry with Apple Developer Technical Support. Similar to the character encoding table, the NameRecords is sorted by platform ID, then platform-specific ID, then language ID, and then by name ID.

Platform ID

ID

Platform

Specific encoding

0

Apple Unicode

none

1

Macintosh

Script manager code

2

ISO

ISO encoding

3

Microsoft

Microsoft encoding


The values 240 through 255 are reserved for user-defined platforms. The DTS registry will never assign these values to a registered platform.

Microsoft platform-specific encoding ID's (platform ID = 3)

Code

Description

0

Undefined character set or indexing scheme

1

UGL character set with Unicode indexing scheme (see chapter, "Character Sets.")


When building a Unicode font for Windows, the platform ID should be 3 and the encoding ID should be 1. When building a symbol font for Windows, the platform ID should be 3 and the encoding ID should be 0. When building a font that will be used on the Macintosh, the platform ID should be 1 and the encoding ID should be 0.

The PanEuropean Chicago product will contain locale data for the following locales. This is also the list from which the user may choose a locale in custom setup and the mapping to Windows and DOS codepages based on that choice. The language ID (LCID in the table below) refers to a value which identifies the language in which a particular string is written.

Primary Language

Locale Name

LCID

Win CP

DOS CP

Albanian

Albania

(041c; SQI)

Basque

Basque

(042D; EUQ)

1252

850

Byelorussian

Byelorussia

(0423, BEL)

1251

866

Bulgarian

Bulgaria

(0402, BGR)

1251

866

Catalan

Catalan

(0403; CAT)

1252

850

Croatian

Croatian

(041a, SHL)

1250

852

Czech

Czech

(0405; CSY)

1250

852

Danish

Danish

(0406; DAN)

1252

865

Dutch (2):

Dutch (Standard)

(0413; NLD)

1252

850

Dutch (2):

Belgian (Flemish)

(0813; NLB)

1252

850

English (6):

American

(0409; ENU)

1252

437

English (6):

British

(0809; ENG)

1252

850

English (6):

Australian

(0c09; ENA)

1252

850

English (6):

Canadian

(1009; ENC)

1252

850

English (6):

New Zealand

(1409; ENZ)

1252

850

English (6):

Ireland

(1809; ENI)

1252

850

Estonian

Estonia

(0425, ETI)

1257

775

Finnish

Finnish

(040b; FIN)

1252

850

French

French (Standard)

(040c; FRA)

1252

850

French

Belgian

(080c; FRB)

1252

850

French

Canadian

(0c0c; FRC)

1252

850

French

Swiss

(100c; FRS)

1252

850

French

Luxembourg

(140c; FRL)

1252

850

German

German (Standard)

(0407; DEU)

1252

850

German

Swiss

(0807; DES)

1252

850

German

Austrian

(0c07; DEA)

1252

850

German

Luxembourg

(1007; DEL)

1252

850

German

Liechtenstein

(1407; DEC)

1252

850

Greek

Greek

(0408; ELL)

1253

737 or 869

Hungarian

Hungarian

(040e; HUN)

1250

852

Icelandic

Icelandic

(040F; ISL)

1252

850

Italian (2):

Italian (Standard)

(0410; ITA)

1252

850

Italian (2):

Swiss

(0810; ITS)

1252

850

Latvian

Latvia

(0426, LVI)

1257

775

Lithuanian

Lithuania

(0427, LTH)

1257

775

Macedonian

Macedonia

(042f; MKD)

Norwegian (2):

Norwegian (Bokmal)

(0414; NOR)

1252

850

Norwegian (2):

Norwegian (Nynorsk)

(0814; NON)

1252

850

Polish

Polish

(0415; PLK)

1250

852

Portuguese (2):

Portuguese (Brazilian)

(0416; PTB)

1252

850

Portuguese (2):

Portuguese (Standard)

(0816; PTG)

1252

850

Romanian (2):

Romania

(0418, ROM)

1250

852

Russian

Russian

(0419; RUS)

1251

866

Slovak

Slovak

(041b; SKY)

1250

852

Slovenian

Slovenia

(0424, SLV)

1250

852

Spanish (3):

Spanish (Traditional Sort)

(040a; ESP)

1252

850

Spanish (3):

Mexican

(080a; ESM)

1252

850

Spanish (3):

Spanish (Modern Sort)

(0c0a; ESN)

1252

850

Swedish

Swedish

(041D; SVE)

1252

850

Turkish

Turkish

(041f; TRK)

1254

857

Ukrainian

Ukraine

(0422, UKR)

1251

866


Macintosh platform-specific encoding ID's (script manager codes)
(platform ID = 1)

Code

Script

Code

Script

0

Roman

17

Malayalam

1

Japanese

18

Sinhalese

2

Chinese

19

Burmese

3

Korean

20

Khmer

4

Arabic

21

Thai

5

Hebrew

22

Laotian

6

Greek

23

Georgian

7

Russian

24

Armenian

8

RSymbol

25

Maldivian

9

Devanagari

26

Tibetan

10

Gurmukhi

27

Mongolian

11

Gujarati

28

Geez

12

Oriya

29

Slavic

13

Bengali

30

Vietnamese

14

Tamil

31

Sindhi

15

Telugu

32

Uninterp

16

Kannada


Macintosh language ID's:

Code

Language

Code

Language

0

English

12

Arabic

1

French

13

Finnish

2

German

14

Greek

3

Italian

15

Icelandic

4

Dutch

16

Maltese

5

Swedish

17

Turkish

6

Spanish

18

Yugoslavian

7

Danish

19

Chinese

8

Portuguese

20

Urdu

9

Norwegian

21

Hindi

10

Hebrew

22

Thai

11

Japanese


ISO specific encodings (platform ID = 2)

Code

ISO encoding

0

7-bit ASCII

1

ISO 10646

2

ISO 8859-1


There are not any ISO-specific language ID's.

The following name ID's are defined, and they apply to all platforms. Extensions to this table will be registered with Apple DTS.

Name ID's

Code

Meaning

0

Copyright notice.

1

Font Family name

2

Font Subfamily name; for purposes of definition, this is assumed to address style (italic, oblique) and weight (light, bold, black, etc.) only. A font with no particular differences in weight or style (e.g. medium weight, not italic and fsSelection bit 6 set) should have the string "Regular" stored in this position.

3

Unique font identifier

4

Full font name; this should simply be a combination of strings 1 and 2. Exception: if string 2 is "Regular," then use only string 1. This is the font name that Windows will expose to users.

5

Version string. In n.nn format.

6

Postscript name for the font.

7

Trademark; this is used to save any trademark notice/information for this font. Such information should be based on legal advice. This is distinctly separate from the copyright.


Note that while both Apple and Microsoft support the same set of name strings, the interpretations may be somewhat different. But since name strings are stored by platform, encoding and language (placing separate strings in for both Apple and MS platforms), this should not present a problem.

The key information for this table for MS fonts relates to the use of strings 1, 2 and 4. Some examples:

Helvetica Narrow Oblique

1 = Helvetica Narrow

2 = Oblique

4 = Helvetica Narrow Oblique

Helvetica Narrow

1 = Helvetica Narrow

2 = Regular

4 = Helvetica Narrow

Helvetica Narrow Light Italic

1 = Helvetica Narrow

2 = Light Italic

4 = Helvetica Narrow Light Italic


Note that OS/2 and Windows both require that all name strings be defined in Unicode. Thus all 'name' table strings for platform ID = 3 (Microsoft) will require two bytes per character. See the chapter, "Character Sets," for a list of the current Unicode character codes supported by Microsoft. Macintosh fonts require single byte strings.

Examples of how these strings might be defined:

0

The copyright string from the font vendor.
© Copyright the Monotype Corporation plc, 1990

1

The name the user sees.
Times New Roman

2

The name of the style.
Bold

3

A unique identifier that applications can store to identify the font being used.
Monotype: Times New Roman Bold:1990

4

The complete, hopefully unique, human readable name of the font. This name is used by Windows.
Times New Roman Bold

5

Release and version information from the font vendor.
June 1, 1990; 1.00, initial release

6

The name the font will be known by on a PostScript printer.
TimesNewRoman-Bold

7

Trademark string,
Times New Roman is a registered trademark of the Monotype Corporation.