Template:ISO 15924 script codes and related Unicode data/header

< Template:ISO 15924 script codes and related Unicode data
ISO 15924 Script in Unicode[e]
Code ISO number ISO formal name Directionality Unicode Alias[f] Version Characters Notes Description
Documentation icon Template documentation[view] [edit] [history] [purge]

This documentation is shared between templates {{Unicode blocks}} and {{ISO 15924 script codes and related Unicode data}}.

Usage

The template can be used as usual. It is not a navigation box, so it can be everywhere in an article. The notes are contained within the template, and will not appear in the main References part.

Note: when resolving red links or wrong links, edit {{ISO 15924/wp-article}}. That is where the connection between ISO code and a Wikipedia article is made.

ISO 15924 templates

Template:ISO 15924/overview-templates


Template data

This is the TemplateData documentation for this template used by VisualEditor and other tools; see the monthly parameter usage report for this template.

TemplateData for ISO 15924 script codes and related Unicode data

<templatedata> { "params": { "1": {} } } </templatedata>

Background: How is this table composed

Note that a script is not a language. A single script, like the Latin alphabet, is used in many languages. Unicode is only about scripts, not about languages that use that script. Still there may be nuances, like the English versus Polish language in using accents on letters.

Step 1: ISO defines a script

ISO defines and publishes a script in the ISO 15924 list. It defines the Alpha-4 code (Aaaa-Zzzz), the Numeric code (000-999), and the formal Name for each accepted script. Currently there are some 160 scripts defined in this list. Included are scripts like "Mathematical notation (Zmth)" and "Code for undetermined script (a.k.a. Common, Zyyy)". The list is formally maintained and published by ISO, and practically by the Unicode Consortium office. It is published on the Unicode website. Technically, the list is file <syntaxhighlight lang="text" enclose="none">iso15924.txt</syntaxhighlight>.

Step 2: Unicode attaches an Alias name

Then, Unicode (not ISO) maintains a list of Alias script names right next to the ISO-defined scripts, for each script Unicode has encoded. The Alias name is an English name for that script.

So the ISO alpha-4 code gets a unique Alias name by Unicode: <syntaxhighlight lang="text" enclose="none">Mymr:ISO Name=Myanmar (Burmese), Alias=Myanmar</syntaxhighlight>.[1] These Alias names are also present in the definition file <syntaxhighlight lang="text" enclose="none">iso15924.txt</syntaxhighlight>.

Step 3: Usage by Unicode

From that list, Unicode can translate any alpha4-code into the Alias name of the script, and reverse. Unicode does not use the formal ISO name.

A script name is used in the Unicode Name of a character: "Error using {{unichar}}: Input "05BF" is not a hexadecimal value.".

Per character

In the Unicode database, Unicode adds one single appropriate alpha-4 code to every individual script character. So every letter, punctuation, number and so of a script get that code. Characters used by multiple scripts, such as the period (.), have script code "Zyyy" (Common). The "script" codes for Mathematical and Symbol are not used by Unicode; symbols and mathematical characters have the property script="Unknown".

Then, in the file <syntaxhighlight lang="text" enclose="none">Scripts.txt</syntaxhighlight>, Unicode publishes the Alias script name per character (possibly by a range of characters). A part of that file looks like:

...
0591..05BD    ; Hebrew # Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
05BE          ; Hebrew # Pd       HEBREW PUNCTUATION MAQAF
05BF          ; Hebrew # Mn       HEBREW POINT RAFE
05C0          ; Hebrew # Po       HEBREW PUNCTUATION PASEQ
05C1..05C2    ; Hebrew # Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
05C3          ; Hebrew # Po       HEBREW PUNCTUATION SOF PASUQ
...

This datafile defines which scripts are present in Unicode, and what script is at a certain code point.

In a block

Given a block range of code points, then which scripts are present in that block? See {{Unicode blocks}}: this table is constructed by signaling every script that is present as a block (once).

There is no secure relation between a script name and a block name. Some scripts are in a single block, but other scripts are spread amongst several blocks.

See also

  1. "UTR #24: Unicode Script Property". Unicode Consortium. 2023-08-14.