Thus, language IDs associated with language-tag records must be within the range 0x8000 to 0x8000 + langTagCount - 1. Each language-tag record corresponds to a language ID one greater than that for the previous language-tag record. The language-tag records are associated sequentially with language IDs starting with 0x8000. This provides tags such as “en”, “fr-CA” and “zh-Hant” to identify languages, including dialects, written form and other language variants.
![caslon egyptian .ttf download caslon egyptian .ttf download](https://www.cufonfonts.com/images/thumb/4715/caslon-741x415-abd1de14dd.jpg)
The language tags must conform to IETF specification BCP 47. Language-tag strings stored in the naming table must be encoded in UTF-16BE. Language-tag string offset from start of storage area (in bytes). These can be used for any platform that supports this language-tag mechanism.Ī font using a version 1 naming table may use a combination of platform-specific language IDs as well as language-tag records for a given platform and encoding.Įach LangTagRecord is organized as follows: Type In this way, the language ID is associated with a language-tag string that specifies the language for name records using that language ID, regardless of the platform. If a language ID is equal to or greater than 0x8000, it is associated with a language-tag record (LangTagRecord) that references a language-tag string. If a language ID is less than 0x8000, it has a platform-specific interpretation as with a version 0 naming table. When version 1 is used, the language IDs in name records can be less than or greater than 0x8000. The language-tag records where langTagCount is the number of records. The version 1 naming table adds additional elements, and is organized as follows: Type The name records where count is the number of records.įormat 0 differs from version 1 in regard to handling of language identification: it uses only numeric language IDs, which generally are values less than 0x8000 and have platform-specific interpretations. Offset to start of string storage (from start of table). The version 0 naming table is organized as follows: Type Both versions include variable-size string-data storage, and an array of name records that are used to identify the type of string (name ID), platform, encoding and language variants of the string, and the location within the storage. Version 1 allows for use of language-tag strings to indicate the language of strings.
![caslon egyptian .ttf download caslon egyptian .ttf download](https://www.abyme.net/wp-content/uploads/2017/11/egyptian7.png)
Version 0 uses platform-specific, numeric language identifiers. There are two versions of the Naming Table. Some applications might display incorrect strings, however, if strings for the current platform are not included. Many newer platforms can use strings intended for different platforms if a font does not include strings for that platform. Note that different platforms may have different requirements for the encoding of strings. Applications that need a particular string can look it up by its platform ID, encoding ID, language ID and name ID. In addition to language variants, the table also allows for platform-specific character-encoding variants. Other parts of the OpenType font that require these strings can refer to them using a language-independent name ID.
![caslon egyptian .ttf download caslon egyptian .ttf download](https://www.dafontfree.net/data/13/a/64352/font-map-adobe-caslon-pro.png)
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. These strings can represent copyright notices, font names, family names, style names, and so on.
![caslon egyptian .ttf download caslon egyptian .ttf download](http://www.designhistory.org/Type_milestones_pages/images_typemilestones/Johnston_underg.gif)
The naming table allows multilingual strings to be associated with the OpenType™ font.