Module:Unicode data/scripts

Definition from Wiktionary, the free dictionary
Jump to navigation Jump to search

This module was generated by a series of functions in Module:User:Erutuon/script recognition from the script patterns in Module:scripts/data. It is used by the char_to_script function in Module:Unicode data. It will have to be regenerated when script patterns are added or modified.

The highlight_dump and modified_dump functions in Module:debug were used to print the output from Module:User:Erutuon/script recognition.

To explain the format, the first keys are the groups of 4096 codepoints (0x1000 in hexadecimal base). Key 0 is for the first group of 4096 codepoints, from U+000 to U+FFF. Within the tables for each block of codepoints, the syntax { 0x41, 0x5A, "Latn" } indicates that all the characters from codepoint 0x41 (U+0041 or the character A) to codepoint 0x5A (U+005A or the character Z) belong to the Latin script. The table "individual" contains all the individual codepoints that are defined as belonging to a script, but are not found inside a range.

Beware: despite being listed under Module:Unicode data, this was generated from Wiktionary script classes. For the official script properties of Unicode codepoints, go to Module:Unicode data/scripts on Wikipedia.

Conflicts between character sets of different scripts[edit]

This module includes fewer scripts than Module:scripts/data, because some scripts do not have characters at all, and some scripts' character sets are in conflict with each other. Here are the ways conflicts have been resolved.

Scripts are omitted if they have the same characters as another more basic script, or they consist of two or more other scripts. For example, fa-Arab is omitted because it contains the same characters as Arab, and Jpan is omitted because it consists of Hani, Hira and Kana.

If a script consists of the characters of another script, plus some unique characters, only the unique characters are counted as belonging to the script. For instance, polytonic consists of the characters of Grek, which are used in the monotonic orthography of Modern Greek, plus characters used for Ancient Greek; only the Ancient Greek characters are counted as polytonic in this module. It is the same with Cyrs and Cyrl, Latinx and Latn.


return {
	[0x00] = {
		{ 0x00041, 0x0005A, "Latn" },
		{ 0x00061, 0x0007A, "Latn" },
		{ 0x000C0, 0x000D6, "Latn" },
		{ 0x000D8, 0x000F6, "Latn" },
		{ 0x000F8, 0x0024F, "Latn" },
		{ 0x00370, 0x003E1, "Grek" },
		{ 0x003E2, 0x003EF, "Copt" },
		{ 0x003F0, 0x003FF, "Grek" },
		{ 0x00400, 0x0045F, "Cyrl" },
		{ 0x00460, 0x00469, "Cyrs" },
		{ 0x0046A, 0x0046D, "Cyrl" },
		{ 0x0046E, 0x00471, "Cyrs" },
		{ 0x00472, 0x00475, "Cyrl" },
		{ 0x00476, 0x00489, "Cyrs" },
		{ 0x0048A, 0x00527, "Cyrl" },
		{ 0x00531, 0x0058F, "Armn" },
		{ 0x00590, 0x005FF, "Hebr" },
		{ 0x00600, 0x006FF, "Arab" },
		{ 0x00700, 0x0074F, "Syrc" },
		{ 0x00750, 0x0077F, "Arab" },
		{ 0x00780, 0x007B1, "Thaa" },
		{ 0x007C0, 0x007FF, "Nkoo" },
		{ 0x00800, 0x0083E, "Samr" },
		{ 0x00840, 0x0085E, "Mand" },
		{ 0x00860, 0x0086A, "Syrc" },
		{ 0x008A0, 0x008FF, "Arab" },
		{ 0x00900, 0x0097F, "Deva" },
		{ 0x00980, 0x00983, "Beng" },
		{ 0x00985, 0x0098C, "Beng" },
		{ 0x00993, 0x009A8, "Beng" },
		{ 0x009AA, 0x009B0, "Beng" },
		{ 0x009B6, 0x009B9, "Beng" },
		{ 0x009BC, 0x009C4, "Beng" },
		{ 0x009CB, 0x009CE, "Beng" },
		{ 0x009E0, 0x009E3, "Beng" },
		{ 0x009E6, 0x009EF, "Beng" },
		{ 0x009F0, 0x009F1, "as-Beng" },
		{ 0x00A01, 0x00A76, "Guru" },
		{ 0x00A81, 0x00AF1, "Gujr" },
		{ 0x00B01, 0x00B77, "Orya" },
		{ 0x00B82, 0x00BFA, "Taml" },
		{ 0x00C00, 0x00C7F, "Telu" },
		{ 0x00C80, 0x00CF2, "Knda" },
		{ 0x00D02, 0x00D7F, "Mlym" },
		{ 0x00D82, 0x00DF4, "Sinh" },
		{ 0x00E01, 0x00E5B, "Thai" },
		{ 0x00E81, 0x00EDF, "Laoo" },
		{ 0x00F00, 0x00FDA, "Tibt" },
		length = 48,
	},
	[0x01] = {
		{ 0x01000, 0x0109F, "Mymr" },
		{ 0x010A0, 0x010CD, "Geok" },
		{ 0x010D0, 0x010FF, "Geor" },
		{ 0x01100, 0x011FF, "Hang" },
		{ 0x01200, 0x01399, "Ethi" },
		{ 0x013A0, 0x013F4, "Cher" },
		{ 0x01400, 0x0167F, "Cans" },
		{ 0x01680, 0x0169C, "Ogam" },
		{ 0x016A0, 0x016F0, "Runr" },
		{ 0x01700, 0x01714, "Tglg" },
		{ 0x01720, 0x01734, "Hano" },
		{ 0x01740, 0x01753, "Buhd" },
		{ 0x01760, 0x01773, "Tagb" },
		{ 0x01780, 0x017F9, "Khmr" },
		{ 0x01800, 0x018AA, "Mong" },
		{ 0x01900, 0x0194F, "Limb" },
		{ 0x01950, 0x01974, "Tale" },
		{ 0x01980, 0x019DF, "Talu" },
		{ 0x019E0, 0x019FF, "Khmr" },
		{ 0x01A00, 0x01A1F, "Bugi" },
		{ 0x01A20, 0x01AAD, "Lana" },
		{ 0x01B00, 0x01B7C, "Bali" },
		{ 0x01B80, 0x01BBF, "Sund" },
		{ 0x01BC0, 0x01BFF, "Batk" },
		{ 0x01C00, 0x01C4F, "Lepc" },
		{ 0x01C50, 0x01C7F, "Olck" },
		{ 0x01C90, 0x01CBF, "Geor" },
		{ 0x01E00, 0x01EFF, "Latn" },
		{ 0x01F00, 0x01FFE, "polytonic" },
		length = 29,
	},
	[0x02] = {
		{ 0x02190, 0x021FF, "Zsym" },
		{ 0x02200, 0x022FF, "Zmth" },
		{ 0x02300, 0x023FF, "Zsym" },
		{ 0x02500, 0x027BF, "Zsym" },
		{ 0x027C0, 0x027EF, "Zmth" },
		{ 0x02800, 0x028FF, "Brai" },
		{ 0x02980, 0x02AFF, "Zmth" },
		{ 0x02B00, 0x02BFE, "Zsym" },
		{ 0x02C00, 0x02C5E, "Glag" },
		{ 0x02C60, 0x02C7F, "Latinx" },
		{ 0x02C80, 0x02CFF, "Copt" },
		{ 0x02D00, 0x02D2D, "Geok" },
		{ 0x02D30, 0x02D7F, "Tfng" },
		{ 0x02D80, 0x02DDE, "Ethi" },
		{ 0x02E80, 0x02FDF, "Hani" },
		length = 15,
	},
	[0x03] = {
		{ 0x03000, 0x0303F, "Hani" },
		{ 0x03041, 0x0309F, "Hira" },
		{ 0x030A0, 0x030FF, "Kana" },
		{ 0x03105, 0x0312F, "Bopo" },
		{ 0x03131, 0x0318E, "Hang" },
		{ 0x031A0, 0x031BA, "Bopo" },
		{ 0x031C0, 0x031E3, "Hani" },
		{ 0x031F0, 0x031FF, "Kana" },
		{ 0x03300, 0x03357, "Kana" },
		{ 0x0337B, 0x0337F, "Hani" },
		{ 0x03400, 0x03FFF, "Hani" },
		length = 11,
	},
	[0x04] = {
		{ 0x04000, 0x04DB5, "Hani" },
		{ 0x04E00, 0x04FFF, "Hani" },
		length = 2,
	},
	[0x05] = {
		{ 0x05000, 0x05FFF, "Hani" },
		length = 1,
	},
	[0x06] = {
		{ 0x06000, 0x06FFF, "Hani" },
		length = 1,
	},
	[0x07] = {
		{ 0x07000, 0x07FFF, "Hani" },
		length = 1,
	},
	[0x08] = {
		{ 0x08000, 0x08FFF, "Hani" },
		length = 1,
	},
	[0x09] = {
		{ 0x09000, 0x09FFF, "Hani" },
		length = 1,
	},
	[0x0A] = {
		{ 0x0A000, 0x0A4C6, "Yiii" },
		{ 0x0A4D0, 0x0A4FF, "Lisu" },
		{ 0x0A500, 0x0A62B, "Vaii" },
		{ 0x0A640, 0x0A67F, "Cyrs" },
		{ 0x0A680, 0x0A697, "Cyrl" },
		{ 0x0A6A0, 0x0A6F7, "Bamu" },
		{ 0x0A720, 0x0A7FF, "Latinx" },
		{ 0x0A800, 0x0A82B, "Sylo" },
		{ 0x0A840, 0x0A877, "Phag" },
		{ 0x0A880, 0x0A8D9, "Saur" },
		{ 0x0A8E0, 0x0A8FF, "Deva" },
		{ 0x0A900, 0x0A92F, "Kali" },
		{ 0x0A930, 0x0A95F, "Rjng" },
		{ 0x0A980, 0x0A9DF, "Java" },
		{ 0x0A9E0, 0x0A9FE, "Mymr" },
		{ 0x0AA00, 0x0AA5F, "Cham" },
		{ 0x0AA60, 0x0AA7F, "Mymr" },
		{ 0x0AA80, 0x0AADF, "Tavt" },
		{ 0x0AAE0, 0x0AAFF, "Mtei" },
		{ 0x0AB01, 0x0AB2E, "Ethi" },
		{ 0x0AB30, 0x0AB65, "Latinx" },
		{ 0x0AB70, 0x0ABBF, "Cher" },
		{ 0x0ABC0, 0x0ABFF, "Mtei" },
		{ 0x0AC00, 0x0AFFF, "Hang" },
		length = 24,
	},
	[0x0B] = {
		{ 0x0B000, 0x0BFFF, "Hang" },
		length = 1,
	},
	[0x0C] = {
		{ 0x0C000, 0x0CFFF, "Hang" },
		length = 1,
	},
	[0x0D] = {
		{ 0x0D000, 0x0D7A3, "Hang" },
		length = 1,
	},
	[0x0F] = {
		{ 0x0FA27, 0x0FA29, "Hani" },
		{ 0x0FB13, 0x0FB17, "Armn" },
		{ 0x0FB1D, 0x0FB4F, "Hebr" },
		{ 0x0FB50, 0x0FDFD, "Arab" },
		{ 0x0FE70, 0x0FEFC, "Arab" },
		length = 5,
	},
	[0x10] = {
		{ 0x10000, 0x100FA, "Linb" },
		{ 0x10280, 0x1029C, "Lyci" },
		{ 0x102A0, 0x102D0, "Cari" },
		{ 0x102E1, 0x102FB, "Copt" },
		{ 0x10300, 0x10323, "Ital" },
		{ 0x10330, 0x1034A, "Goth" },
		{ 0x10350, 0x1037A, "Perm" },
		{ 0x10380, 0x1039F, "Ugar" },
		{ 0x103A0, 0x103D5, "Xpeo" },
		{ 0x10400, 0x1044F, "Dsrt" },
		{ 0x10450, 0x1047F, "Shaw" },
		{ 0x10480, 0x104A9, "Osma" },
		{ 0x104B0, 0x104FB, "Osge" },
		{ 0x10500, 0x10527, "Elba" },
		{ 0x10530, 0x10563, "Aghb" },
		{ 0x10600, 0x10767, "Lina" },
		{ 0x10800, 0x1083F, "Cprt" },
		{ 0x10840, 0x1085F, "Armi" },
		{ 0x10860, 0x1087F, "Palm" },
		{ 0x10880, 0x108AF, "Nbat" },
		{ 0x108E0, 0x108FF, "Hatr" },
		{ 0x10900, 0x1091F, "Phnx" },
		{ 0x10920, 0x1093F, "Lydi" },
		{ 0x10980, 0x1099F, "Mero" },
		{ 0x109A0, 0x109BF, "Merc" },
		{ 0x10A00, 0x10A58, "Khar" },
		{ 0x10A60, 0x10A7F, "Sarb" },
		{ 0x10A80, 0x10A9F, "Narb" },
		{ 0x10AC0, 0x10AF6, "Mani" },
		{ 0x10B00, 0x10B3F, "Avst" },
		{ 0x10B40, 0x10B5F, "Prti" },
		{ 0x10B60, 0x10B7F, "Phli" },
		{ 0x10B80, 0x10BAF, "Phlp" },
		{ 0x10C00, 0x10C48, "Orkh" },
		{ 0x10C80, 0x10CB2, "Hung" },
		{ 0x10D00, 0x10D39, "Rohg" },
		{ 0x10E60, 0x10E7E, "Ruminumerals" },
		{ 0x10F00, 0x10F27, "Sogo" },
		{ 0x10F30, 0x10F59, "Sogd" },
		length = 39,
	},
	[0x11] = {
		{ 0x11000, 0x1107F, "Brah" },
		{ 0x11080, 0x110CD, "Kthi" },
		{ 0x110D0, 0x110F9, "Sora" },
		{ 0x11100, 0x11146, "Cakm" },
		{ 0x11150, 0x11176, "Mahj" },
		{ 0x11180, 0x111D9, "Shrd" },
		{ 0x11200, 0x1123D, "Khoj" },
		{ 0x11280, 0x112A9, "Mult" },
		{ 0x112B0, 0x112F9, "Sind" },
		{ 0x11301, 0x11374, "Gran" },
		{ 0x11400, 0x1145E, "Newa" },
		{ 0x11480, 0x114D9, "Tirh" },
		{ 0x11580, 0x115DD, "Sidd" },
		{ 0x11600, 0x11659, "Modi" },
		{ 0x11680, 0x116C9, "Takr" },
		{ 0x11700, 0x1173F, "Ahom" },
		{ 0x11800, 0x1183B, "Dogr" },
		{ 0x118A0, 0x118FF, "Wara" },
		{ 0x11A00, 0x11A47, "Zanb" },
		{ 0x11A50, 0x11AA2, "Soyo" },
		{ 0x11AC0, 0x11AF8, "Pauc" },
		{ 0x11C00, 0x11C6C, "Bhks" },
		{ 0x11C70, 0x11CB6, "Marc" },
		{ 0x11D00, 0x11D59, "Gonm" },
		{ 0x11D60, 0x11DA9, "Gong" },
		{ 0x11EE0, 0x11EF8, "Maka" },
		length = 26,
	},
	[0x12] = {
		{ 0x12000, 0x1236E, "Xsux" },
		{ 0x12400, 0x12473, "Xsux" },
		length = 2,
	},
	[0x13] = {
		{ 0x13000, 0x1342E, "Egyp" },
		length = 1,
	},
	[0x14] = {
		{ 0x14400, 0x14646, "Hluw" },
		length = 1,
	},
	[0x16] = {
		{ 0x16800, 0x16A38, "Bamu" },
		{ 0x16A40, 0x16A6F, "Mroo" },
		{ 0x16AD0, 0x16AF5, "Bass" },
		{ 0x16B00, 0x16B8F, "Hmng" },
		{ 0x16E40, 0x16E9A, "Medf" },
		{ 0x16F00, 0x16F9F, "Plrd" },
		length = 6,
	},
	[0x17] = {
		{ 0x17000, 0x17FFF, "Tang" },
		length = 1,
	},
	[0x18] = {
		{ 0x18000, 0x18AF2, "Tang" },
		length = 1,
	},
	[0x1B] = {
		{ 0x1B001, 0x1B11E, "Hira" },
		{ 0x1B170, 0x1B2FB, "Nshu" },
		{ 0x1BC00, 0x1BC9F, "Dupl" },
		length = 3,
	},
	[0x1D] = {
		{ 0x1D100, 0x1D1DD, "musical" },
		{ 0x1D2E0, 0x1D2F3, "Maya" },
		{ 0x1D400, 0x1D7FF, "Zmth" },
		{ 0x1D800, 0x1DAAF, "Sgnw" },
		length = 4,
	},
	[0x1E] = {
		{ 0x1E000, 0x1E02A, "Glag" },
		{ 0x1E800, 0x1E8D6, "Mend" },
		{ 0x1E900, 0x1E95F, "Adlm" },
		length = 3,
	},
	[0x1F] = {
		{ 0x1F000, 0x1F0F5, "Zsym" },
		{ 0x1F300, 0x1FA6D, "Zsym" },
		length = 2,
	},
	[0x20] = {
		{ 0x20000, 0x20FFF, "Hani" },
		length = 1,
	},
	[0x21] = {
		{ 0x21000, 0x21FFF, "Hani" },
		length = 1,
	},
	[0x22] = {
		{ 0x22000, 0x22FFF, "Hani" },
		length = 1,
	},
	[0x23] = {
		{ 0x23000, 0x23FFF, "Hani" },
		length = 1,
	},
	[0x24] = {
		{ 0x24000, 0x24FFF, "Hani" },
		length = 1,
	},
	[0x25] = {
		{ 0x25000, 0x25FFF, "Hani" },
		length = 1,
	},
	[0x26] = {
		{ 0x26000, 0x26FFF, "Hani" },
		length = 1,
	},
	[0x27] = {
		{ 0x27000, 0x27FFF, "Hani" },
		length = 1,
	},
	[0x28] = {
		{ 0x28000, 0x28FFF, "Hani" },
		length = 1,
	},
	[0x29] = {
		{ 0x29000, 0x29FFF, "Hani" },
		length = 1,
	},
	[0x2A] = {
		{ 0x2A000, 0x2AFFF, "Hani" },
		length = 1,
	},
	[0x2B] = {
		{ 0x2B000, 0x2BFFF, "Hani" },
		length = 1,
	},
	[0x2C] = {
		{ 0x2C000, 0x2CFFF, "Hani" },
		length = 1,
	},
	[0x2D] = {
		{ 0x2D000, 0x2DFFF, "Hani" },
		length = 1,
	},
	[0x2E] = {
		{ 0x2E000, 0x2EBE0, "Hani" },
		length = 1,
	},

	individual = {
		[0x00462] = "Cyrl",
		[0x00463] = "Cyrl",
		[0x0098F] = "Beng",
		[0x00990] = "Beng",
		[0x009A1] = "Beng",
		[0x009A2] = "Beng",
		[0x009AF] = "Beng",
		[0x009B2] = "Beng",
		[0x009BC] = "Beng",
		[0x009C7] = "Beng",
		[0x009C8] = "Beng",
		[0x009D7] = "Beng",
		[0x02135] = "Zmth",
		[0x0FA0E] = "Hani",
		[0x0FA0F] = "Hani",
		[0x0FA11] = "Hani",
		[0x0FA13] = "Hani",
		[0x0FA14] = "Hani",
		[0x0FA1F] = "Hani",
		[0x0FA21] = "Hani",
		[0x0FA23] = "Hani",
		[0x0FA24] = "Hani",
		[0x1056F] = "Aghb",
		[0x16FE0] = "Tang",
		[0x16FE1] = "Nshu",
		[0x1B000] = "Kana",
	},

	blocks = {
		{ 0x04, 0x09, "Hani" },
		{ 0x0B, 0x0D, "Hang" },
		{ 0x17, 0x18, "Tang" },
		{ 0x20, 0x2E, "Hani" },
	},
}