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

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 . That is where the connection between ISO code and a Wikipedia article is made.

Template data
{	"params": { "1": {}	} }

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 iso15924.txt.

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: Mymr:ISO Name=Myanmar (Burmese), Alias=Myanmar. These Alias names are also present in the definition file iso15924.txt.

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: "".

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 Scripts.txt, 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.