Модул:scripts/data

Документација модула[прикажи] [уреди] [историја] [освежи]

This module contains definitions and metadata for all script codes on Wiktionary. See Wiktionary:Scripts for more information.

This module must not be imported using require. Instead, it is imported like this:

local m_scripts = mw.loadData("Module:scripts")

This ensures that the data is only loaded once per page, rather than once for every module invocation like normal.

To access this data from templates, use Module:script utilities.

Потребне вредности[уреди]

Every entry in the table must contain the following properties:

canonicalName
The "canonical" name of the script. This is the name that is used in Wiktionary entries and category names.

Опционе вредности[уреди]

otherNames
A table of all the names that this script is known by, other than the canonical name.
characters
A Lua character class that matches on any character that belongs to this script. The character classes are the same as those in Lua search/replace patterns, but without the surrounding [ ] (these are implicitly added). They also resemble those found in regular expressions.
In its simplest form, the character class can just be a list of all the characters in the script (Example: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"). But it's easier to describe using character ranges, especially when the script contains many dozens or even hundreds of different characters. Character ranges are given with only the first and last character, and separated by a hyphen -. The set then implicitly includes all characters whose Unicode codepoints are in between the two given characters (Пример: "A-Za-z").
character_category
Used by Модул:character info. If false, prevents {{character info/new}} from adding a characters category, such as Категорија:Латински текст карактери.
systems
The categories of writing system to which the script belongs. Видите Модул:writing_systems/data for a list of supported values. At the moment, this is only used by Модул:category tree/scriptcatboiler. The system will only be displayed if there is only one category. Видите Категорија:Латински текст for an example.

--[=[
	When adding new scripts to this file, please don't forget to add
	style definitons for the script in [[MediaWiki:Common.css]].
]=]
local u = mw.ustring.char

local m = {}

m["Adlm"] = {
	"Adlam",
	"alphabet",
	characters = "؟ـ𞤀-𞥟",
	capitalized = true,
	direction = "rtl",
}

m["Afak"] = {
	"Afaka",
	"syllabary",
}

m["Aghb"] = {
	"Caucasian Albanian",
	"alphabet",
	characters = "𐔰-𐕯",
}

m["Ahom"] = {
	"Ahom",
	"abugida",
	characters = "𑜀-𑝏",
}

m["Arab"] = {
	"Arabic",
	"abjad",	-- more precisely, impure abjad
	varieties = {"Jawi", {"Nastaliq", "Nastaleeq"}},
	characters = "؀-ۿݐ-ݿࡰ-ࣿﭐ-﷏ﷰ-﷿ﹰ-﻾𐋠-𐋻𐹠-𐹿𐻀-𐻿𞸀-𞻿",
	direction = "rtl",
	normalizationFixes = {
		from = {"ٳ"},
		to = {"اٟ"}
	},
}

	m["fa-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		otherNames = {"Perso-Arabic"},
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["kk-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ks-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ku-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ms-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["mzn-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ota-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["pa-Arab"] = {
		"Shahmukhi",
		m["Arab"][2],
		characters = m["Arab"].characters,
		otherNames = {"Arabic"},
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ps-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["sd-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["tt-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ug-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["ur-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

	m["xka-Arab"] = {
		"Arabic",
		m["Arab"][2],
		characters = m["Arab"].characters,
		direction = "rtl",
		parent = "Arab",
		normalizationFixes = m["Arab"].normalizationFixes,
	}

-- Aran (Nastaliq) is subsumed into Arab

m["Armi"] = {
	"Imperial Aramaic",
	"abjad",
	characters = "𐡀-𐡟",
	direction = "rtl",
}

m["Armn"] = {
	"Armenian",
	"alphabet",
	characters = "԰-֏ﬓ-ﬗ",
	capitalized = true,
}

m["Avst"] = {
	"Avestan",
	"alphabet",
	characters = "𐬀-𐬿",
	direction = "rtl",
}

	m["pal-Avst"] = {
		"Pazend",
		m["Avst"][2],
		characters = m["Avst"].characters,
		direction = "rtl",
		parent = "Avst",
	}

m["Bali"] = {
	"Balinese",
	"abugida",
	characters = "ᬀ-᭿",
}

m["Bamu"] = {
	"Bamum",
	"syllabary",
	characters = "ꚠ-꛿𖠀-𖨿",
}

m["Bass"] = {
	"Bassa",
	"alphabet",
	aliases = {"Bassa Vah", "Vah"},
	characters = "𖫐-𖫿",
}

m["Batk"] = {
	"Batak",
	"abugida",
	characters = "ᯀ-᯿",
}

m["Beng"] = {
	"Bengali",
	"abugida",
	characters = "॒॑।॥ঀ-৯৲-৿᳕᳖᳘᳐᳒᳡ᳪ᳭ᳲᳵ-᳷꣱",
	normalizationFixes = {
		from = {"অা", "ঋৃ", "ঌৢ"},
		to = {"আ", "ৠ", "ৡ"}
	},
}

	m["as-Beng"] = {
		"Assamese",
		m["Beng"][2],
		otherNames = {"Bengali-Assamese", "Eastern Nagari"},
		characters = "॒॑।॥ঀ-য঱-৿᳕᳖᳘᳐᳒᳡ᳪ᳭ᳲᳵ-᳷꣱",
		normalizationFixes = m["Beng"].normalizationFixes,
	}

m["Bhks"] = {
	"Bhaiksuki",
	"abugida",
	characters = "𑰀-𑱯",
}

m["Blis"] = {
	"Blissymbols",
	"logography",
	aliases = {"Blissymbolics"},
	-- Not in Unicode
}

m["Bopo"] = {
	"Zhuyin",
	"semisyllabary",
	aliases = {"Zhuyin Fuhao", "Bopomofo"},
	characters = "ˇˉˊˋ˙˪˫、-〃〈-】〓-〟〪-〭〰〷・㄀-ㄯ﹅﹆。-・",
}

m["Brah"] = {
	"Brahmi",
	"abugida",
	characters = "𑀀-𑁿",
	normalizationFixes = {
		from = {"𑀅𑀸", "𑀋𑀾", "𑀏𑁂"},
		to = {"𑀆", "𑀌", "𑀐"}
	},
}

m["Brai"] = {
	"Braille",
	"alphabet",
	characters = "⠀-⣿",
}

m["Bugi"] = {
	"Buginese",
	"abugida",
	aliases = {"Lontara"},
	characters = "ᨀ-᨟ꧏ",
}

m["Buhd"] = {
	"Buhid",
	"abugida",
	characters = "᜵᜶ᝀ-᝟ꧏ",
}

m["Cakm"] = {
	"Chakma",
	"abugida",
	characters = "০-৯၀-၉𑄀-𑅏",
}

m["Cans"] = {
	"Canadian syllabics",
	"abugida",
	characters = "᐀-ᙿᢰ-᣿𑪰-𑪿",
}

m["Cari"] = {
	"Carian",
	"alphabet",
	characters = "𐊠-𐋟",
}

m["Cham"] = {
	"Cham",
	"abugida",
	characters = "ꨀ-꩟",
}

m["Cher"] = {
	"Cherokee",
	"syllabary",
	characters = "Ꭰ-᏿ꭰ-ꮿ",
}

m["Chrs"] = {
	"Chorasmian",
	"abjad",
	characters = "𐾰-𐿟",
	direction = "rtl",
}

m["Copt"] = {
	"Coptic",
	"alphabet",
	characters = "Ϣ-ϯⲀ-⳿𐋠-𐋻", -- this is mostly "Coptic", not unified "Greek and Coptic"
	capitalized = true,
}

m["Cpmn"] = {
	"Cypro-Minoan",
	"syllabary",
	aliases = {"Cypro Minoan"},
	characters = "𐄀𐄁𒾐-𒿿",
}

m["Cprt"] = {
	"Cypriot",
	"syllabary",
	characters = "𐄀-𐄂𐄇-𐄳𐄷-𐄿𐠀-𐠿",
	direction = "rtl",
}

m["Cyrl"] = {
	"Cyrillic",
	"alphabet",
	characters = "Ѐ-ԯᲀ-᲏ᴫᵸ᷸ⷠ-ⷿ⹃Ꙁ-ꚟ︮︯𞀰-𞂏",
	capitalized = true,
}

m["Cyrs"] = {
	"Old Cyrillic",
	m["Cyrl"][2],
	aliases = {"Early Cyrillic"},
	characters = m["Cyrl"].characters,
	capitalized = m["Cyrl"].capitalized,
	wikipedia_article = "Early Cyrillic alphabet",
}

m["Deva"] = {
	"Devanagari",
	"abugida",
	characters = "ऀ-ॿ꣠-ꣿ𑬀-𑬉",
	normalizationFixes = {
		from = {"ॆॆ", "ेे", "ाॅ", "ाॆ", "ाꣿ", "ॊॆ", "ाे", "ाै", "ोे", "ाऺ", "ॖॖ", "अॅ", "अॆ", "अा", "एॅ", "एॆ", "एे", "एꣿ", "ऎॆ", "अॉ", "आॅ", "अॊ", "आॆ", "अो", "आे", "अौ", "आै", "ओे", "अऺ", "अऻ", "आऺ", "अाꣿ", "आꣿ", "ऒॆ", "अॖ", "अॗ", "ॶॖ", "्‍?ा"},
		to = {"ꣿ", "ै", "ॉ", "ॊ", "ॏ", "ॏ", "ो", "ौ", "ौ", "ऻ", "ॗ", "ॲ", "ऄ", "आ", "ऍ", "ऎ", "ऐ", "ꣾ", "ꣾ", "ऑ", "ऑ", "ऒ", "ऒ", "ओ", "ओ", "औ", "औ", "औ", "ॳ", "ॴ", "ॴ", "ॵ", "ॵ", "ॵ", "ॶ", "ॷ", "ॷ"}
	},
}

m["Diak"] = {
	"Dhives Akuru",
	"abugida",
	aliases = {"Dives Akuru"},
	characters = "𑤀-𑤆𑤉𑤌-𑤓𑤕𑤖𑤘-𑤵𑤷𑤸𑤻-𑥆𑥐-𑥙",
}

m["Dogr"] = {
	"Dogra",
	"abugida",
	characters = "𑠀-𑠻",
}

m["Dsrt"] = {
	"Deseret",
	"alphabet",
	characters = "𐐀-𐑏",
	capitalized = true,
}

m["Dupl"] = {
	"Duployan",
	"alphabet",
	characters = "𛰀-𛱪𛱰-𛱼𛲀-𛲈𛲐-𛲙𛲜-𛲟",
}

m["Egyd"] = {
	"Demotic",
	"abjad, logography",
}

m["Egyh"] = {
	"Hieratic",
	"abjad, logography",
}

m["Egyp"] = {
	"Egyptian hieroglyphic",
	"abjad, logography",
	characters = "𓀀-𓑕",
	varieties = {"Hieratic"},
	wikipedia_article = "Egyptian hieroglyphs",
	normalizationFixes = {
		from = {"𓃁", "𓆖"},
		to = {"𓃀𓐶𓂝", "𓆓𓐳𓐷𓏏𓐰𓇿𓐸"}
	},
}

m["Elba"] = {
	"Elbasan",
	"alphabet",
	characters = "𐔀-𐔧",
}

m["Elym"] = {
	"Elymaic",
	"abjad",
	characters = "𐿠-𐿶",
	direction = "rtl",
}

m["Ethi"] = {
	"Ethiopic",
	"abugida",
	aliases = {"Ge'ez"},
	characters = "ሀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፼ᎀ-᎙ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮ𞟠-𞟦𞟨-𞟫𞟭𞟮𞟰-𞟾",
}

m["Geok"] = {
	"Khutsuri",
	"alphabet",
	characters = "Ⴀ-ჅჇჍ჻ⴀ-ⴥⴧⴭ", -- Ⴀ-Ⴭ is Asomtavruli, ⴀ-ⴭ is Nuskhuri
	varieties = {"Nuskhuri", "Asomtavruli"},
	capitalized = true,
}

m["Geor"] = {
	"Georgian",
	"alphabet",
	characters = "ა-ჿᲐ-ᲺᲽ-Ჿ", -- ა-ჿ is lowercase Mkhedruli; Ა-Ჿ is uppercase Mkhedruli (Mtavruli)
	varieties = {"Mkhedruli", "Mtavruli"},
	capitalized = true,
}

m["Glag"] = {
	"Glagolitic",
	"alphabet",
	characters = "Ⰰ-ⱟ𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞀪",
	capitalized = true,
}

m["Gong"] = {
	"Gunjala Gondi",
	"abugida",
	characters = "𑵠-𑵥𑵧𑵨𑵪-𑶎𑶐𑶑𑶓-𑶘𑶠-𑶩",
}

m["Gonm"] = {
	"Masaram Gondi",
	"abugida",
	characters = "𑴀-𑴆𑴈𑴉𑴋-𑴶𑴺𑴼𑴽𑴿-𑵇𑵐-𑵙",
}

m["Goth"] = {
	"Gothic",
	"alphabet",
	characters = "𐌰-𐍊",
}

m["Gran"] = {
	"Grantha",
	"abugida",
	characters = "𑌀-𑌃𑌅-𑌌𑌏-𑌐𑌓-𑌨𑌪-𑌰𑌲𑌳𑌵-𑌹𑌼-𑍄𑍇𑍈𑍋-𑍍𑍐𑍗𑍝-𑍣𑍦-𑍬𑍰-𑍴",
}

m["Grek"] = {
	"Greek",
	"alphabet",
	characters = "Ͱ-ͷͺ-Ϳ΄-ΊΌΎ-ΡΣ-ϡϰ-Ͽᴦ-ᴪᵝ-ᵡᵦ-ᵪᶿΩ℩ꭥ𐅀-𐆎𐆠𝈀-𝉅",
	capitalized = true,
}

	m["Polyt"] = {
		"Greek",
		m["Grek"][2],
		characters = "ἀ-῾" .. m["Grek"].characters,
		capitalized = m["Grek"].capitalized,
		parent = "Grek",
	}

m["Gujr"] = {
	"Gujarati",
	"abugida",
	characters = "ઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૱ૺ-૿",
	normalizationFixes = {
		from = {"ઓ", "અાૈ", "અા", "અૅ", "અે", "અૈ", "અૉ", "અો", "અૌ", "આૅ", "આૈ", "ૅા"},
		to = {"અાૅ", "ઔ", "આ", "ઍ", "એ", "ઐ", "ઑ", "ઓ", "ઔ", "ઓ", "ઔ", "ૉ"}
	},
}

m["Guru"] = {
	"Gurmukhi",
	"abugida",
	characters = "ਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-੶",
	normalizationFixes = {
		from = {"ਅਾ", "ਅੈ", "ਅੌ", "ੲਿ", "ੲੀ", "ੲੇ", "ੳੁ", "ੳੂ", "ੳੋ"},
		to = {"ਆ", "ਐ", "ਔ", "ਇ", "ਈ", "ਏ", "ਉ", "ਊ", "ਓ"}
	},
}

m["Hang"] = {
	"Hangul",
	"syllabary",
	aliases = {"Hangeul"},
	characters = (
		"가-힣".. -- Syllables
		"ᄀ-ᇿ".. -- Jamo
		"ꥠ-ꥼ".. -- Jamo Ext-A
		"ힰ-ퟻ".. -- Jamo Ext-B
		"ㄱ-ㆎ".. -- Compat Jamo
		"ᅠ-ᅵ" -- Halfwidth
	),
}

m["Hani"] = {
	"Han",
	"logography",
	characters = (
		"一-鿿" ..
		"㐀-䶿" .. -- ExtA
		"𠀀-𪛟" .. -- ExtB
		"𪜀-𮹟" .. -- ExtC-F & I
		"𰀀-𲎯" .. -- ExtG-H
		"﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧﨨﨩" ..
		"⼀-⿟" .. -- Kangxi Radicals
		"⺀-⻿" .. -- Radicals Supplement
		" -〿" .. -- CJK Symbols and Punctuation
		"𖿢𖿣𖿰𖿱" .. -- Ideographic Symbols and Punctuation
		"㇀-㇮" .. -- Strokes
		"㋿㍻-㍿" .. -- 組文字
		"㈠-㉇㊀-㊰㋀-㋋㍘-㍰㏠-㏾🈐-🈒🈔-🈻🉀-🉈🉐🉑🉠-🉥" ..
		-- Saved as bytes to stop normalization on save.
		"\239\164\128-\239\171\191" .. -- Compatibility Ideographs
		"\240\175\160\128-\240\175\168\159" -- Compatibility Ideographs Supplement
	),
	varieties = {"Hanzi", "Kanji", "Hanja", "Chu Nom"},
	spaces = false,
}

	m["Hans"] = {
		"Simplified Han",
		m["Hani"][2],
		characters = m["Hani"].characters,
		spaces = m["Hani"].spaces,
		parent = "Hani",
	}

	m["Hant"] = {
		"Traditional Han",
		m["Hani"][2],
		characters = m["Hani"].characters,
		spaces = m["Hani"].spaces,
		parent = "Hani",
	}

m["Hano"] = {
	"Hanunoo",
	"abugida",
	characters = "ᜠ-᜴",
}

m["Hatr"] = {
	"Hatran",
	"abjad",
	characters = "𐣠-𐣿",
	direction = "rtl",
}

m["Hebr"] = {
	"Hebrew",
	"abjad",	-- more precisely, impure abjad
	characters = u(0x0590) .. "-" .. u(0x05FF) .. u(0xFB1D) .. "-" .. u(0xFB4F),
	direction = "rtl",
}

m["Hira"] = {
	"Hiragana",
	"syllabary",
	characters = "ぁ-ゟ𛀁-𛄞𛅐𛅑𛅒🈀",
	varieties = {"Hentaigana"},
	spaces = false,
}

m["Hluw"] = {
	"Anatolian Hieroglyphs",
	"logography, syllabary",
	characters = "𔐀-𔙆",
	wikipedia_article = "Anatolian hieroglyphs",
}

m["Hmng"] = {
	"Pahawh Hmong",
	"semisyllabary",
	aliases = {"Hmong"},
	characters = "𖬀-𖮏",
}

m["Hmnp"] = {
	"Nyiakeng Puachue Hmong",
	"alphabet",
	characters = "𞄀‎-𞅏",
}

m["Hung"] = {
	"Old Hungarian",
	"alphabet",
	aliases = {"Hungarian runic"},
	characters = "𐲀-𐲲",
	capitalized = true,
	direction = "rtl",
}

m["Ibrn"] = {
	"Iberian",
	"semisyllabary",
}

m["Imag"] = {
	-- To be used to avoid any formatting or link processing
	"Image-rendered",
	-- This should not have any characters listed
	translit = false,
	character_category = false,
}

m["Inds"] = {
	"Indus",
	aliases = {"Harappan", "Indus Valley"},
}

m["Ipach"] = {
	"International Phonetic Alphabet",
	aliases = {"IPA"},
}

m["Ital"] = {
	"Old Italic",
	"alphabet",
	characters = "𐌀-𐌯",
}

m["Java"] = {
	"Javanese",
	"abugida",
	characters = "ꦀ-꧟",
}

m["Jurc"] = {
	"Jurchen",
	spaces = false,
}

m["Kali"] = {
	"Kayah Li",
	"abugida",
	characters = "꤀-꤯",
}

m["Kana"] = {
	"Katakana",
	"syllabary",
	characters = "゠-ヿㇰ-ㇿ㌀-㍗ヲ-゚𛀀𛅤𛅥𛅦𛅧",
	spaces = false,
}

m["Kawi"] = {
	"Kawi",
	"abugida",
	characters = "𑼀-𑽙",
}

m["Khar"] = {
	"Kharoshthi",
	"abugida",
	characters = "𐨀-𐩘",
	direction = "rtl",
}

m["Khmr"] = {
	"Khmer",
	"abugida",
	characters = "ក-៝០-៩៰-៹᧠-᧿",
	spaces = false,
	normalizationFixes = {
		from = {"ឣ", "ឤ"},
		to = {"អ", "អា"}
	},
}

m["Khoj"] = {
	"Khojki",
	"abugida",
	characters = "𑈀-𑈾",
	normalizationFixes = {
		from = {"𑈀𑈬𑈱", "𑈀𑈬", "𑈀𑈱", "𑈀𑈳", "𑈁𑈱", "𑈆𑈬", "𑈬𑈰", "𑈬𑈱", "𑉀𑈮"},
		to = {"𑈇", "𑈁", "𑈅", "𑈇", "𑈇", "𑈃", "𑈲", "𑈳", "𑈂"}
	},
}

m["Kitl"] = {
	"Khitan Large",
	"logography, syllabary",
	spaces = false,
}

m["Kits"] = {
	"Khitan Small",
	"logography, syllabary",
	characters = "𘬀-𘳕"..u(0x16FE4),
	spaces = false,
}

m["Knda"] = {
	"Kannada",
	"abugida",
	characters = "ಀ-ೲ",
	normalizationFixes = {
		from = {"ಉಾ", "ಋಾ", "ಒೌ"},
		to = {"ಊ", "ೠ", "ಔ"}
	},
}

m["Kpel"] = {
	"Kpelle",
	"syllabary",
	-- Not in Unicode
}

m["Kthi"] = {
	"Kaithi",
	"abugida",
	characters = "𑂀-𑃍",
}

m["Lana"] = {
	"Tai Tham",
	"abugida",
	aliases = {"Tham", "Tua Mueang", "Lanna"},
	characters = "ᨠ-ᩞ᩠-᩿᩼᪀-᪉᪐-᪙᪠-᪭",
	spaces = false,
}

m["Laoo"] = {
	"Lao",
	"abugida",
	characters = "ກຂຄຆ-ຊຌ-ຣລວ-ຽເ-ໄໆ່-໎໐-໙ໜ-ໟ",
	spaces = false,
}

m["Latn"] = {
	"Latin",
	"alphabet",
	aliases = {"Roman"},
	characters = "A-Za-zªºÀ-ÖØ-öø-ɏḀ-ỿ",
	varieties = {"Rumi", "Romaji", "Rōmaji", "Romaja"},
	capitalized = true,
	translit = false,
}

	m["Latf"] = {
		"Fraktur",
		m["Latn"][2],
		characters = m["Latn"].characters,
		otherNames = {"Blackletter"}, -- Blackletter is actually the parent "script"
		capitalized = m["Latn"].capitalized,
		translit = m["Latn"].translit,
		parent = "Latn",
	}
	
	m["Latg"] = {
		"Gaelic",
		m["Latn"][2],
		characters = m["Latn"].characters,
		otherNames = {"Irish"},
		capitalized = m["Latn"].capitalized,
		translit = m["Latn"].translit,
		parent = "Latn",
	}

	m["Latnx"] = {
		"Latin",
		m["Latn"][2],
		characters = m["Latn"].characters .. "ɐ-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꟿꬰ-ꭚꭜ-ꭤꭦ-ꭩff-stA-Za-z𐞀-𐞅𐞇-𐞰𐞲-𐞺𝼀-𝼞𝼥-𝼪",
		capitalized = m["Latn"].capitalized,
		translit = m["Latn"].translit,
		parent = "Latn",
	}

	m["pjt-Latn"] = {
		"Latin",
		m["Latn"][2],
		characters = m["Latn"].characters,
		capitalized = m["Latn"].capitalized,
		translit = m["Latn"].translit,
		parent = "Latn",
	}

m["Leke"] = {
	"Leke",
	"abugida",
}

m["Lepc"] = {
	"Lepcha",
	"abugida",
	characters = "ᰀ-ᱏ",
}

m["Limb"] = {
	"Limbu",
	"abugida",
	characters = "ᤀ-᥏",
}

m["Lina"] = {
	"Linear A",
	characters = "𐘀-𐝧",
}

m["Linb"] = {
	"Linear B",
	characters = "𐀀-𐃺",
}

m["Lisu"] = {
	"Lisu",
	"alphabet",
	aliases = {"Fraser"},
	characters = "ꓐ-꓿𑾰",
	normalizationFixes = {
		from = {"['’]", "[.ꓸ][.ꓸ]", "[.ꓸ][,ꓹ]"},
		to = {"ʼ", "ꓺ", "ꓻ"}
	},
}

m["Loma"] = {
	"Loma",
	"syllabary",
	-- Not in Unicode
}

m["Lyci"] = {
	"Lycian",
	"alphabet",
	characters = "𐊀-𐊜",
}

m["Lydi"] = {
	"Lydian",
	"alphabet",
	characters = "𐤠-𐤿",
	direction = "rtl",
}

m["Mahj"] = {
	"Mahajani",
	"abugida",
	characters = "𑅐-𑅶",
}

m["Maka"] = {
	"Lontara",
	"abugida",
	aliases = {"Makasar"},
	characters = "𑻠-𑻸",
}

m["Mand"] = {
	"Mandaic",
	aliases = {"Mandaean"},
	characters = "ࡀ-࡞",
	direction = "rtl",
}

m["Mani"] = {
	"Manichaean",
	"abjad",
	characters = "𐫀-𐫶",
	direction = "rtl",
}

m["Marc"] = {
	"Marchen",
	"abugida",
	characters = "𑱰-𑲶",
}

m["Maya"] = {
	"Maya",
	aliases = {"Maya hieroglyphic", "Mayan", "Mayan hieroglyphic"},
	characters = "𝋠-𝋳",
}

m["Medf"] = {
	"Medefaidrin",
	aliases = {"Oberi Okaime", "Oberi Ɔkaimɛ"},
	characters = "𖹀-𖺚",
	capitalized = true,
}

m["Mend"] = {
	"Mende",
	aliases = {"Mende Kikakui"},
	characters = "𞠀-𞣖",
	direction = "rtl",
}

m["Merc"] = {
	"Meroitic cursive",
	"abugida",
	characters = "𐦠-𐦿",
	direction = "rtl",
}

m["Mero"] = {
	"Meroitic hieroglyphic",
	"abugida",
	characters = "𐦀-𐦟",
	direction = "rtl",
}

m["Mlym"] = {
	"Malayalam",
	"abugida",
	characters = "ഀ-ൿ",
	normalizationFixes = {
		from = {"ഇൗ", "ഉൗ", "എെ", "ഒാ", "ഒൗ", "ക്‍", "ണ്‍", "ന്‍റ", "ന്‍", "മ്‍", "യ്‍", "ര്‍", "ല്‍", "ള്‍", "ഴ്‍", "െെ", "ൻ്റ"},
		to = {"ഈ", "ഊ", "ഐ", "ഓ", "ഔ", "ൿ", "ൺ", "ൻറ", "ൻ", "ൔ", "ൕ", "ർ", "ൽ", "ൾ", "ൖ", "ൈ", "ന്റ"}
	},
}

m["Modi"] = {
	"Modi",
	"abugida",
	characters = "𑘀-𑙙",
	normalizationFixes = {
		from = {"𑘀𑘹", "𑘀𑘺", "𑘁𑘹", "𑘁𑘺"},
		to = {"𑘊", "𑘋", "𑘌", "𑘍"}
	},
}

m["Mong"] = {
	"Mongolian",
	"alphabet",
	aliases = {"Mongol bichig", "Hudum Mongol bichig"},
	characters = "᠀-᠅᠊-᠙ᠠ-ᡂᡸᢀ-ᢗᢦᢩ‌‍ 𑙠-𑙨",
	direction = "down",
}

	m["mnc-Mong"] = {
		"Manchu",
		m["Mong"][2],
		characters = "᠁᠄᠈-᠏ᠠᠣᠨ-ᠪᠮ-ᠰᠴ-ᠸᠺᡝᡟ-ᡡᡤ-ᡩᡬ-ᡱᡳ-ᡷᢀ-ᢈᢏᢚ-ᢥᢨᢪ‌‍ ",
		direction = "down",
		parent = "Mong",
	}
	
	m["sjo-Mong"] = {
		"Xibe",
		m["Mong"][2],
		aliases = {"Sibe"},
		characters = "᠄᠇᠊-᠏ᠠᠣᠨᠪᠮ-ᠰᠴ-ᠸᠺᡝ-ᡲ‌‍ ",
		direction = "down",
		parent = "mnc-Mong",
	}
	
	m["xwo-Mong"] = {
		"Clear Script",
		m["Mong"][2],
		aliases = {"Todo", "Todo bichig"},
		characters = "᠀᠁᠄-᠆᠊-ᠠᠨᠯ-ᠱᠴᠷᠸᠺᠻᡀᡃ-ᡜᢀ-ᢇᢉ-ᢏᢔᢖ-ᢙᢧ‌‍ 𑙩-𑙬",
		direction = "down",
		parent = "Mong",
	}

m["Moon"] = {
	"Moon",
	"alphabet",
	aliases = {"Moon System of Embossed Reading", "Moon type", "Moon writing", "Moon alphabet", "Moon code"},
	-- Not in Unicode
}

m["Morse"] = {
	"Morse code",
}

m["Mroo"] = {
	"Mro",
	characters = "𖩀-𖩯",
}

m["Mtei"] = {
	"Meitei Mayek",
	"abugida",
	aliases = {"Meetei Mayek", "Manipuri"},
	characters = "ꯀ-꯹ꫠ-꫶",
}

m["Mult"] = {
	"Multani",
	"abugida",
	characters = "𑊀-𑊩",
}

m["Music"] = {
	"Musical notation",
	"pictography",
	characters = "𝄀-𝇨",
	translit = false,
}

m["Mymr"] = {
	"Burmese",
	"abugida",
	aliases = {"Myanmar"},
	characters = "က-႟ꩠ-ꩿꧠ-ꧾ",
	spaces = false,
}

m["Nagm"] = {
	"Nag Mundari",
	"alphabet",
	characters = "𞓐-𞓹",
}

m["Nand"] = {
	"Nandinagari",
	"abugida",
	characters = "𑦠-𑧤",
}

m["Narb"] = {
	"Old North Arabian",
	"abjad",
	characters = "𐪀-𐪟",
	direction = "rtl",
}

m["Nbat"] = {
	"Nabataean",
	"abjad",
	aliases = {"Nabatean"},
	characters = "𐢀-𐢯",
	direction = "rtl",
}

m["Newa"] = {
	"Newa",
	"abugida",
	aliases = {"Newar", "Newari", "Prachalit Nepal"},
	characters = "𑐀-𑑡",
}

m["Nkdb"] = {
	"Dongba",
	"pictography",
	aliases = {"Naxi Dongba", "Nakhi Dongba", "Tomba", "Tompa", "Mo-so"},
	spaces = false,
	-- Not in Unicode
}

m["Nkgb"] = {
	"Geba",
	"syllabary",
	aliases = {"Nakhi Geba", "Naxi Geba"},
	spaces = false,
	-- Not in Unicode
}

m["Nkoo"] = {
	"N'Ko",
	"alphabet",
	characters = "߀-߿",
	direction = "rtl",
}

m["None"] = {
	"Unspecified", -- renders as 'unspecified script'
	-- This should not have any characters listed
	translit = false,
	character_category = false,
}

m["Nshu"] = {
	"Nüshu",
	"syllabary",
	aliases = {"Nushu"},
	characters = "𖿡𛅰-𛋻",
	spaces = false,
}

m["Ogam"] = {
	"Ogham",
	characters = " -᚜",
}

m["Olck"] = {
	"Ol Chiki",
	characters = "᱐-᱿",
}

m["Orkh"] = {
	"Orkhon runes",
	aliases = {"Old Turkic"},
	characters = "𐰀-𐱈",
	direction = "rtl",
}

m["Orya"] = {
	"Oriya",
	"abugida",
	aliases = {"Odia"},
	characters = "ଁ-୷",
	normalizationFixes = {
		from = {"ଅା", "ଏୗ", "ଓୗ"},
		to = {"ଆ", "ଐ", "ଔ"}
	},
}

m["Osge"] = {
	"Osage",
	characters = "𐒰-𐓻",
	capitalized = true,
}

m["Osma"] = {
	"Osmanya",
	characters = "𐒀-𐒩",
}

m["Ougr"] = {
	"Old Uyghur",
	"abjad, alphabet",
	characters = "𐽰-𐾉",
	direction = "down",
}

m["Palm"] = {
	"Palmyrene",
	characters = "𐡠-𐡿",
	direction = "rtl",
}

m["Pauc"] = {
	"Pau Cin Hau",
	characters = "𑫀-𑫸",
}

m["Perm"] = {
	"Old Permic",
	characters = "𐍐-𐍺",
}

m["Phag"] = {
	"Phags-pa",
	"abugida",
	characters = "᠂᠃᠅‌‍ 。ꡀ-꡷",
	direction = "down",
}

m["Phli"] = {
	"Inscriptional Pahlavi",
	"abjad",
	characters = "𐭠-𐭿",
	direction = "rtl",
}

m["Phlp"] = {
	"Psalter Pahlavi",
	"abjad",
	characters = "𐮀-𐮯",
	direction = "rtl",
}

m["Phlv"] = {
	"Book Pahlavi",
	"abjad",
	direction = "rtl",
	-- Not in Unicode
}

m["Phnx"] = {
	"Phoenician",
	"abjad",
	characters = "𐤀-𐤟",
	direction = "rtl",
}

m["Plrd"] = {
	"Pollard",
	"abugida",
	aliases = {"Miao"},
	characters = "𖼀-𖾟",
}

m["Prti"] = {
	"Inscriptional Parthian",
	characters = "𐭀-𐭟",
	direction = "rtl",
}

m["Ranj"] = {
	"Ranjana",
	"abugida",
	-- Not in Unicode
}

m["Rjng"] = {
	"Rejang",
	"abugida",
	characters = "ꤰ-꥟",
}

m["Rohg"] = {
	"Hanifi Rohingya",
	"alphabet",
	characters = "𐴀-𐴹",
	direction = "rtl",
}

m["Roro"] = {
	"Rongorongo",
	-- Not in Unicode
}

m["Rumin"] = {
	"Rumi numerals",
	characters = "𐹠-𐹾",
	character_category = "Rumi numerals",
}

m["Runr"] = {
	"Runic",
	"alphabet",
	characters = "ᚠ-ᛰ",
}

m["Samr"] = {
	"Samaritan",
	"abjad",
	characters = "ࠀ-࠾",
	direction = "rtl",
}

m["Sarb"] = {
	"Old South Arabian",
	"abjad",
	characters = "𐩠-𐩿",
	direction = "rtl",
}

m["Saur"] = {
	"Saurashtra",
	"abugida",
	characters = "ꢀ-꣙",
}

m["Semap"] = {
	"flag semaphore",
	"pictography",
}

m["Sgnw"] = {
	"SignWriting",
	"pictography",
	characters = "𝠀-𝪯",
	translit = false,
}

m["Shaw"] = {
	"Shavian",
	characters = "𐑐-𐑿",
}

m["Shrd"] = {
	"Sharada",
	"abugida",
	characters = "𑆀-𑇙",
}

m["Shui"] = {
	"Sui",
	"logography",
	spaces = false,
	-- Not in Unicode
}

m["Sidd"] = {
	"Siddham",
	"abugida",
	characters = "𑖀-𑗝",
}

m["Sind"] = {
	"Khudawadi",
	"abugida",
	characters = "𑊰-𑋹",
	normalizationFixes = {
		from = {"𑊰𑋠", "𑊰𑋥", "𑊰𑋦", "𑊰𑋧", "𑊰𑋨"},
		to = {"𑊱", "𑊶", "𑊷", "𑊸", "𑊹"}
	},
}

m["Sinh"] = {
	"Sinhalese",
	"abugida",
	aliases = {"Sinhala"},
	characters = "ං-෴",
	normalizationFixes = {
		from = {"අා", "අැ", "අෑ", "උෟ", "ඍෘ", "ඏෟ", "එ්", "එෙ", "ඔෟ", "ෘෘ"},
		to = {"ආ", "ඇ", "ඈ", "ඌ", "ඎ", "ඐ", "ඒ", "ඓ", "ඖ", "ෲ"}
	},
}

m["Sogd"] = {
	"Sogdian",
	"abjad",
	characters = "𐼰-𐽙",
	direction = "rtl",
}

m["Sogo"] = {
	"Old Sogdian",
	"abjad",
	characters = "𐼀-𐼧",
	direction = "rtl",
}

m["Sora"] = {
	"Sorang Sompeng",
	aliases = {"Sora Sompeng"},
	characters = "𑃐-𑃹",
}

m["Soyo"] = {
	"Soyombo",
	"abugida",
	characters = "𑩐-𑪢",
}

m["Sund"] = {
	"Sundanese",
	"abugida",
	characters = "ᮀ-ᮿ",
}

m["Sylo"] = {
	"Syloti Nagri",
	"abugida",
	aliases = {"Sylheti Nagari"},
	characters = "ꠀ-꠫",
}

m["Syrc"] = {
	"Syriac",
	"abjad",	-- more precisely, impure abjad
	characters = "܀-ݏ"..u(0x0860).."-"..u(0x086A),
	direction = "rtl",
}

-- Syre, Syrj, Syrn are apparently subsumed into Syrc; discuss if this causes issues

m["Tagb"] = {
	"Tagbanwa",
	"abugida",
	characters = "ᝠ-ᝳ",
}

m["Takr"] = {
	"Takri",
	"abugida",
	characters = "𑚀-𑛉",
	normalizationFixes = {
		from = {"𑚀𑚭", "𑚀𑚴", "𑚀𑚵", "𑚆𑚲"},
		to = {"𑚁", "𑚈", "𑚉", "𑚇"}
	},
}

m["Tale"] = {
	"Tai Nüa",
	"abugida",
	aliases = {"Tai Nuea", "New Tai Nüa", "New Tai Nuea", "Dehong Dai", "Tai Dehong", "Tai Le"},
	characters = "ᥐ-ᥭᥰ-ᥴ",
	spaces = false,
}

m["Talu"] = {
	"New Tai Lue",
	"abugida",
	characters = "ᦀ-ᦫᦰ-ᧉ᧐-᧚᧞᧟",
	spaces = false,
}

m["Taml"] = {
	"Tamil",
	"abugida",
	characters = "ஂ-௺𑿀-𑿿",
	normalizationFixes = {
		from = {"அூ", "ஸ்ரீ"},
		to = {"ஆ", "ஶ்ரீ"}
	},
}

m["Tang"] = {
	"Tangut",
	"logography, syllabary",
	characters = "𖿠𗀀-𘫿𘴀-𘴈",
	spaces = false,
}

m["Tavt"] = {
	"Tai Viet",
	"abugida",
	characters = "ꪀ-ꫂꫛ-꫟",
	spaces = false,
}

m["Telu"] = {
	"Telugu",
	"abugida",
	characters = "ఀ-౿",
	normalizationFixes = {
		from = {"ఒౌ", "ఒౕ", "ిౕ", "ెౕ", "ొౕ"},
		to = {"ఔ", "ఓ", "ీ", "ే", "ో"}
	},
}

m["Teng"] = {
	"Tengwar",
}

m["Tfng"] = {
	"Tifinagh",
	"abjad, alphabet",
	characters = "ⴰ-⵿",
	otherNames = {"Libyco-Berber", "Berber"}, -- per Wikipedia, Libyco-Berber is the parent
}

m["Tglg"] = {
	"Baybayin",
	"abugida",
	aliases = {"Tagalog"},
	characters = "ᜀ-᜔",
}

m["Thaa"] = {
	"Thaana",
	"abugida",
	characters = "ހ-ޱ",
	direction = "rtl",
}

m["Thai"] = {
	"Thai",
	"abugida",
	characters = "ก-ฺเ-๛",
	spaces = false,
}

m["Tibt"] = {
	"Tibetan",
	"abugida",
	characters = "ༀ-࿚",
	normalizationFixes = {
		combiningClasses = {["༹"] = 1},
		from = {"ཷ", "ཹ"},
		to = {"ྲཱྀ", "ླཱྀ"}
	},
}

	m["sit-tam-Tibt"] = {
		"Tamyig",
		m["Tibt"][2],
		characters = m["Tibt"].characters,
		parent = "Tibt",
		normalizationFixes = m["Tibt"].normalizationFixes,
	}

	m["xzh-Tibt"] = {
		"Zhang-Zhung",
		m["Tibt"][2],
		characters = m["Tibt"].characters,
		parent = "Tibt",
		normalizationFixes = m["Tibt"].normalizationFixes,
	}

m["Tirh"] = {
	"Tirhuta",
	"abugida",
	characters = "𑒀-𑓙",
	normalizationFixes = {
		from = {"𑒁𑒰", "𑒋𑒺", "𑒍𑒺", "𑒪𑒵", "𑒪𑒶"},
		to = {"𑒂", "𑒌", "𑒎", "𑒉", "𑒊"}
	},
}

m["Tnsa"] = {
	"Tangsa",
	"alphabet",
	characters = "𖩰-𖫉",
}

m["Toto"] = {
	"Toto",
	"abugida",
	characters = "𞊐-𞊮",
}

m["Ugar"] = {
	"Ugaritic",
	"abjad",
	characters = "𐎀-𐎟",
}

m["Vaii"] = {
	"Vai",
	"syllabary",
	characters = "ꔀ-ꘫ",
}

m["Visp"] = {
	"Visible Speech",
	"alphabet",
	-- Not in Unicode
}

m["Vith"] = {
	"Vithkuqi",
	"alphabet",
	characters = "𐕰-𐖼",
	capitalized = true,
}

m["Wara"] = {
	"Varang Kshiti",
	aliases = {"Warang Citi"},
	characters = "𑢠-𑣿",
	capitalized = true,
}

m["Wcho"] = {
	"Wancho",
	"alphabet",
	characters = "𞋀-𞋿",
}

m["Wole"] = {
	"Woleai",
	"syllabary",
	-- Not in Unicode
}

m["Xpeo"] = {
	"Old Persian",
	characters = "𐎠-𐏕",
}

m["Xsux"] = {
	"Cuneiform",
	aliases = {"Sumero-Akkadian Cuneiform"},
	characters = "𒀀-𒎙𒐀-𒑳",
}

m["Yezi"] = {
	"Yezidi",
	"alphabet",
	characters = "𐺀-𐺱",
	direction = "rtl",
}

m["Yiii"] = {
	"Yi",
	"syllabary",
	characters = "ꀀ-꓆",
}

m["Zanb"] = {
	"Zanabazar Square",
	characters = u(0x11A00).."-"..u(0x11A47),
}

m["Zmth"] = {
	"mathematical notation",
	characters = "ℵ∀-⋿⟀-⟯⦀-⫿𝐀-𝟿",
	translit = false,
	character_category = "Mathematical notation symbols", -- ?
}

m["Zsym"] = {
	"symbol",
	"pictography",
	characters = "─-➿←-⇿⌀-⏿⬀-⯾🀀-🃵🌀-🩭",
	translit = false,
	character_category = false, -- none
}

m["Zyyy"] = {
	"undetermined",
	-- This should not have any characters listed, probably
	translit = false,
	character_category = false, -- none
}

m["Zzzz"] = {
	"uncoded",
	-- This should not have any characters listed
	translit = false,
	character_category = false, -- none
}

-- These should be defined after the scripts they are composed of.

m["Hrkt"] = { -- TODO: add hentaigana
	"Kana",
	"syllabary",
	aliases = {"Japanese syllabaries"},
	characters = m["Hira"].characters .. m["Kana"].characters,
	spaces = false,
}

m["Jpan"] = {
	"Japanese",
	"logography, syllabary",
	characters = m["Hrkt"].characters .. m["Hani"].characters .. m["Latnx"].characters,
	spaces = false,
	sort_by_scraping = true,
}

m["Kore"] = {
	"Korean",
	"logography, syllabary",
	characters = m["Hang"].characters .. m["Hani"].characters,
}

return m