Skip to main content

OpenType Script Tags

OpenType script tags are standardized four-letter identifiers used within the OpenType font specification to represent writing systems (scripts) such as Latin, Cyrillic, Han, Arabic, and others. These tags are embedded in font tables—specifically GSUB (Glyph Substitution) and GPOS (Glyph Positioning)—to enable advanced text layout and shaping according to the typographic and linguistic rules of each script. Script tags allow layout engines to apply the correct features and substitutions for each script encountered in text.

Reference Sources

Common Script Tags

TagScript NamePrimary Languages / Regions
latnLatinEnglish, French, German, Spanish, etc.
cyrlCyrillicRussian, Bulgarian, Serbian, etc.
grekGreekGreek
arabArabicArabic, Persian, Urdu, etc.
hebrHebrewHebrew
devaDevanagariHindi, Marathi, Nepali, Sanskrit, etc.
hangHangulKorean
haniHan (Ideographic)Chinese, Japanese, Korean (CJK)
kanaKatakanaJapanese
hiraHiraganaJapanese
thaiThaiThai
tamlTamilTamil
ethiEthiopicAmharic, Tigrinya, etc.
bengBengaliBengali, Assamese
guruGurmukhiPunjabi

Usage in OpenType

Script tags are integral to the GSUB (Glyph Substitution) and GPOS (Glyph Positioning) tables in OpenType fonts. Within these tables, a ScriptList maps each script tag to a set of language systems and associated layout features. When rendering text, shaping engines analyze the Unicode codepoints and map them to the appropriate script tag. This mapping ensures that the correct substitutions and positioning rules are applied for the script in use, enabling proper display of complex scripts and ligatures.

Notes

  • OpenType script tags are generally aligned with ISO 15924 script codes, but there are exceptions and some differences in naming or tag assignment. For example, hani is used for Han ideographs (Chinese characters), which covers multiple languages.
  • Some scripts have multiple tags for historical or compatibility reasons.

Full List

For the complete registry, see Microsoft's official documentation.

Common Script Tags

TagScript NameLocal NameExample TextPrimary Languages / Regions
LatnLatinLatinABC xyzEnglish, French, Spanish, German, Vietnamese, Swahili, Turkish, Polish, Italian, and many others worldwide (most widely used script)
CyrlCyrillicКириллицаПриветRussian, Ukrainian, Bulgarian, Serbian, Belarusian, Kazakh, Kyrgyz, Tajik, Mongolian (Cyrillic), used across Eastern Europe, Central Asia
GrekGreekΕλληνικάΑθήναGreek (Greece, Cyprus), minority communities
ArabArabicالعربيةسلامArabic (Middle East, North Africa), Persian (Iran), Urdu (Pakistan), Pashto, Kurdish, Uighur, Sindhi, and others across the Arab world and beyond
HebrHebrewעבריתשלוםHebrew (Israel), liturgical use in Jewish communities worldwide
DevaDevanagariदेवनागरीनमस्तेHindi, Marathi, Nepali, Sanskrit, Konkani, Maithili, Dogri, and others in India and Nepal
HangHangul한글안녕하세요Korean (South Korea, North Korea, Korean diaspora)
HaniHan漢字漢字Chinese (Mainland China, Taiwan, Hong Kong, Singapore), Japanese (as Kanji), Korean (as Hanja, historical)
KanaKatakanaカタカナカタカナJapanese (loanwords, foreign names, emphasis, technical/scientific terms)
HiraHiraganaひらがなこんにちはJapanese (native words, grammatical elements)
ThaiThaiไทยสวัสดีThai (Thailand), minority languages in Thailand
TamlTamilதமிழ்தமிழ்Tamil (India, Sri Lanka, Singapore, Malaysia, diaspora)
EthiEthiopicግዕዝሰላምAmharic, Tigrinya, Tigre, Ge'ez, and other languages in Ethiopia and Eritrea
BengBengaliবাংলাবাংলাBengali (Bangladesh, India), Assamese (India, as variant), Bishnupriya Manipuri, others in Bengal region
GuruGurmukhiਗੁਰਮੁਖੀਪੰਜਾਬੀPunjabi (India, especially Punjab state), diaspora communities

Demographic Data

Last updated: January 2025

The following demographic data represents native speakers and total users of each script system, compiled from authoritative sources including Ethnologue (2025), UNESCO, and national census data.

Script Usage by Population

Script TagScript NameNative Speakers (Millions)Total Users (Millions)Primary Countries/RegionsLast Updated
latnLatin~1,200~2,500Global (Europe, Americas, Africa, Oceania)2025
haniHan (Chinese)~1,100~1,400China, Taiwan, Hong Kong, Singapore2025
devaDevanagari~600~800India, Nepal2025
arabArabic~310~420Middle East, North Africa2025
cyrlCyrillic~250~300Russia, Eastern Europe, Central Asia2025
hangHangul~77~85South Korea, North Korea2025
bengBengali~230~280Bangladesh, India2025
thaiThai~60~70Thailand2025
tamlTamil~75~85India, Sri Lanka, Singapore2025
guruGurmukhi~120~140India, Pakistan2025
hebrHebrew~9~15Israel, Jewish communities2025
grekGreek~13~15Greece, Cyprus2025
ethiEthiopic~25~30Ethiopia, Eritrea2025
kanaKatakana~125~125Japan2025
hiraHiragana~125~125Japan2025

Key Demographic Notes

  • Latin Script: The most widely used script globally, serving as the primary writing system for over 100 languages including English, Spanish, French, German, Portuguese, Italian, and many others. Used by approximately 70% of the world's population.

  • Han Script (Chinese Characters): Primarily used for Chinese languages (Mandarin, Cantonese, etc.) but also historically used in Japanese (Kanji) and Korean (Hanja). The most populous single script system.

  • Devanagari: The primary script for Hindi and many other Indian languages, used by over 600 million native speakers in South Asia.

  • Arabic Script: Used for Arabic and many other languages across the Middle East, North Africa, and parts of Asia. Includes significant variations for Persian, Urdu, and other languages.

  • Cyrillic Script: Used for Russian and many other Slavic and non-Slavic languages across Eastern Europe and Central Asia.

  • Hangul: The native Korean script, one of the most recently created major writing systems (1443 CE), known for its scientific design.

Data Sources

  • Ethnologue (2025): Primary source for language population data
  • UNESCO Institute for Statistics: Educational and literacy data
  • National Census Data: Country-specific population statistics
  • World Bank: Economic and demographic indicators
  • International Organization for Standardization (ISO): Script and language codes

Note: Population figures are estimates and may vary due to different counting methodologies, language definitions, and the dynamic nature of language use. Some scripts serve multiple languages, and individual language statistics may not directly correlate with script usage statistics.