AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |
Back to Blog
Change font name fontforge3/16/2023 The name ID identifies a logical string category, such as family name or copyright. String offset from start of storage area (in bytes). The name record has a multi-part key, to identify the logical type of string and its language or platform-specific implementation variants, plus the location of the string in the string storage.Įach NameRecord is organized as follows: Type The language ID 0x8001 is used in name records to index strings in Traditional Chinese as used in Hong Kong.Įach string in the string storage is referenced by a name record. If a name record uses a language ID that is greater than this, the identity of the language is unknown such name records should not be used.įor example, suppose a font has two language-tag records referencing strings in the storage: the first references the string “en”, and the second references the string “zh-Hant-HK” In this case, the language ID 0x8000 is used in name records to index English-language strings. 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. 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. 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. 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. The naming table allows multilingual strings to be associated with the OpenType™ font.
0 Comments
Read More
Leave a Reply. |