Module:User:Theknightwho/lua-uca/lua-uca-languages

local languages = {} local tailoring_lib = require "Module:User:Theknightwho/lua-uca/lua-uca-tailoring"

languages.af = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end return collator_obj end

languages.am = function(collator_obj) collator_obj:reorder{ "ethiopic" } return collator_obj end

languages.ar = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "arabic" } -- these are tailorings from "compat". standard tailorings are huge tailoring "&ت<<ة<<<ﺔ<<<ﺓ" tailoring "&ي<<ى<<<ﯨ<<<ﯩ<<<ﻰ<<<ﻯ<<<ﲐ<<<ﱝ" return collator_obj end

languages.as = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "bengali","devanagari","gurmukhi","gujarati","oriya","tamil","telugu","kannada","malayalam","sinhala" } tailoring "&ঔ<ং<ঁ<ঃ" tailoring "&ত<ৎ=ত্\u{200D}" tailoring "&হ<ক্ষ" return collator_obj end

languages.az = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "latin", "cyrillic" } tailoring "&C<ç<<<Ç" tailoring "&G<ğ<<<Ğ" tailoring "&i<ı<<<I" tailoring "&i<<<İ" tailoring "&O<ö<<<Ö" tailoring "&S<ş<<<Ş" tailoring "&U<ü<<<Ü" tailoring "&K<q<<<Q" tailoring "&E<ə<<<Ə" tailoring "&H<x<<<X" tailoring "&Z<w<<<W" return collator_obj end

languages.be = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder {"cyrillic"} tailoring "&Е<ё<<<Ё" tailoring "&у<ў<<<Ў" return collator_obj end

languages.bg = function(collator_obj) collator_obj:reorder {"cyrillic"} return collator_obj end

languages.bn = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "bengali","devanagari","gurmukhi","gujarati","oriya","tamil","telugu","kannada","malayalam","sinhala" } tailoring "&ঔ<ং<ঃ<ঁ" return collator_obj end

languages.bs = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder {"latin", "cyrillic"} tailoring "&C<č<<<Č<ć<<<Ć" tailoring "&D<dž<<<ǆ<<<Dž<<<ǅ<<<DŽ<<<Ǆ<đ<<<Đ" tailoring "&L<lj<<<ǉ<<<Lj<<<ǈ<<<LJ<<<Ǉ" tailoring "&N<nj<<<ǌ<<<Nj<<<ǋ<<<NJ<<<Ǌ" tailoring "&S<š<<<Š" tailoring "&Z<ž<<<Ž" return collator_obj end

languages.bs_cyrl = function(collator_obj) collator_obj:reorder{ "cyrillic" } return collator_obj end

languages.ca = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<ch<<<cH<<<Ch<<<CH" tailoring "&L<ll<<<l·l<<<lL<<<l·L<<<Ll<<<L·l<<<LL<<<L·L" return collator_obj end

languages.chr = function(collator_obj) collator_obj:reorder {"cherokee"} return collator_obj end

languages.cs = function(collator_obj) local char = mw.ustring.char local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring("&C<C" .. char(0x30C)) tailoring("&H<CH") tailoring("&R<R" .. char(0x30C)) tailoring("&S<S" .. char(0x30C)) tailoring("&Z<Z" .. char(0x30C)) collator_obj:reorder {"others", "digits"} return collator_obj end

languages.cy = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<ch<<<Ch<<<CH" tailoring "&D<dd<<<Dd<<<DD" tailoring "&F<ff<<<Ff<<<FF" tailoring "&G<ng<<<Ng<<<NG" tailoring "&L<ll<<<Ll<<<LL" tailoring "&P<ph<<<Ph<<<PH" tailoring "&R<rh<<<Rh<<<RH" tailoring "&T<th<<<Th<<<TH" return collator_obj end

languages.da = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:uppercase_first tailoring("&D<<đ<<<Đ<<ð<<<Ð") tailoring("&th<<<þ") tailoring("&TH<<<Þ") tailoring("&Y<<ü<<<Ü<<ű<<<Ű") tailoring("&ǀ<æ<<<Æ<<ä<<<Ä<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<å<<<Å<<<aa<<<Aa<<<AA") tailoring("&oe<<œ<<<Œ") return collator_obj end

languages.de = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:uppercase_first tailoring "&th<<<þ" tailoring "&TH<<<Þ" tailoring "&Y<<ƿ<<<Ƿ<<ʒ<<<Ʒ<<<ᶾ" tailoring "&A<<ä<<<Ä<<ǟ<<<Ǟ<<á<<<Á<<à<<<À<<ă<<<Ă<<ắ<<<Ắ<<ằ<<<Ằ<<ẵ<<<Ẵ<<ẳ<<<Ẳ<<â<<<Â<<ấ<<<Ấ<<ầ<<<Ầ<<ẫ<<<Ẫ<<ẩ<<<Ẩ<<ǎ<<<Ǎ<<å<<<Å=Å<<ǻ<<<Ǻ<<ã<<<Ã<<ȧ<<<Ȧ<<ǡ<<<Ǡ<<ą<<<Ą<<ā<<<Ā<<ả<<<Ả<<ȁ<<<Ȁ<<ȃ<<<Ȃ<<ạ<<<Ạ<<ặ<<<Ặ<<ậ<<<Ậ<<ḁ<<<Ḁ<<ᷓ<<ᴀ<<ⱥ<<<Ⱥ<<ᶏ<<ɐ<<<Ɐ<<<ᵄ<<ɑ<<<Ɑ<<<ᵅ<<ᶐ<<ɒ<<<Ɒ<<<ᶛ" tailoring "&O<<ö<<<Ö<<ȫ<<<Ȫ<<ó<<<Ó<<ò<<<Ò<<ŏ<<<Ŏ<<ô<<<Ô<<ố<<<Ố<<ồ<<<Ồ<<ỗ<<<Ỗ<<ổ<<<Ổ<<ǒ<<<Ǒ<<ő<<<Ő<<õ<<<Õ<<ṍ<<<Ṍ<<ṏ<<<Ṏ<<ȭ<<<Ȭ<<ȯ<<<Ȯ<<ȱ<<<Ȱ<<ø<<<Ø<<ǿ<<<Ǿ<<ǫ<<<Ǫ<<ǭ<<<Ǭ<<ō<<<Ō<<ṓ<<<Ṓ<<ṑ<<<Ṑ<<ỏ<<<Ỏ<<ȍ<<<Ȍ<<ȏ<<<Ȏ<<ơ<<<Ơ<<ớ<<<Ớ<<ờ<<<Ờ<<ỡ<<<Ỡ<<ở<<<Ở<<ợ<<<Ợ<<ọ<<<Ọ<<ộ<<<Ộ<<ᴏ<<ᴑ<<ᴓ<<ɔ<<<Ɔ <<<ᵓ<<ᴐ<<ᴒ<<ᶗ<<ꝍ<<<Ꝍ<<ᴖ<<<ᵔ<<ᴗ<<<ᵕ<<ⱺ<<ɵ<<<Ɵ<<<ᶱ<<ꝋ<<<Ꝋ<<ɷ<<ȣ<<<Ȣ<<<ᴽ<<ᴕ" tailoring "&U<<ü<<<Ü<<ǘ<<<Ǘ<<ǜ<<<Ǜ<<ǚ<<<Ǚ<<ǖ<<<Ǖ<<ú<<<Ú<<ù<<<Ù<<ŭ<<<Ŭ<<û<<<Û<<ǔ<<<Ǔ<<ů<<<Ů<<ű<<<Ű<<ũ<<<Ũ<<ṹ<<<Ṹ<<ų<<<Ų<<ū<<<Ū<<ṻ<<<Ṻ<<ủ<<<Ủ<<ȕ<<<Ȕ<<ȗ<<<Ȗ<<ư<<<Ư<<ứ<<<Ứ<<ừ<<<Ừ<<ữ<<<Ữ<<ử<<<Ử<<ự<<<Ự<<ụ<<<Ụ<<ṳ<<<Ṳ<<ṷ<<<Ṷ<<ṵ<<<Ṵ<<ᴜ<<<ᶸ<<ᴝ<<<ᵙ<<ᴞ<<ʉ<<<Ʉ<<<ᶶ<<ᵾ<<ᶙ<<ʊ<<<Ʊ<<<ᶷ<<ᵿ" return collator_obj end

languages.de_din2 = function(collator_obj) local codepoint, len = mw.ustring.codepoint, mw.ustring.len local function tailor(a, b, tbl) local autf = {codepoint(a, 1, len(a))} local butf = {codepoint(b, 1, len(b))} collator_obj:tailor(autf,butf, tbl) end local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end languages.de(collator_obj) tailoring "&Ö=Oe" tailoring "&ö=oe" return collator_obj end

languages.dsb = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<č<<<Č<ć<<<Ć" tailoring "&E<ě<<<Ě" tailoring "&H<ch<<<cH<<<Ch<<<CH" tailoring "&L<ł<<<Ł" tailoring "&N<ń<<<Ń" tailoring "&R<ŕ<<<Ŕ" tailoring "&S<š<<<Š<ś<<<Ś" tailoring "&Z<ž<<<Ž<ź<<<Ź" return collator_obj end

languages.dz = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder {"tibetan"} -- tons of tailorings ommited return collator_obj end

languages.ee = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&̌<<̂" tailoring "&D<dz<<<Dz<<<DZ<ɖ<<<Ɖ" tailoring "&E<ɛ<<<Ɛ" tailoring "&F<ƒ<<<Ƒ" tailoring "&G<gb<<<Gb<<<GB<ɣ<<<Ɣ" tailoring "&H<x<<<X" tailoring "&K<kp<<<Kp<<<KP" tailoring "&N<ny<<<Ny<<<NY<ŋ<<<Ŋ" tailoring "&O<ɔ<<<Ɔ" tailoring "&T<ts<<<Ts<<<TS" tailoring "&V<ʋ<<<Ʋ" return collator_obj end

languages.el = function(collator_obj) collator_obj:reorder {"greek"} return collator_obj end

languages.en = function(collator_obj) -- default sorting return collator_obj end

languages.eo = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<ĉ<<<Ĉ" tailoring "&G<ĝ<<<Ĝ" tailoring "&H<ĥ<<<Ĥ" tailoring "&J<ĵ<<<Ĵ" tailoring "&S<ŝ<<<Ŝ" tailoring "&U<ŭ<<<Ŭ" return collator_obj end

languages.es = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&N<ñ<<<Ñ" return collator_obj end

languages.et = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&T<š<<<Š<z<<<Z<ž<<<Ž" tailoring "&X<õ<<<Õ<ä<<<Ä<ö<<<Ö<ü<<<Ü" return collator_obj end

languages.fa = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&َ<<ِ<<ُ<<ً<<ٍ<<ٌ" tailoring "&ا<آ" tailoring "&ا<<ٱ<ء" tailoring "<<أ<<ٲ<<إ<<ٳ<<ؤ" tailoring "<<یٔ<<<ىٔ<<<ئ" tailoring "&ک<<*ڪګكڬڭڮ" tailoring "&ۏ<ه<<ە<<ہ<<ة<<ۃ<<ۀ<<ھ" tailoring "&ی<<*ىےيېۑۍێ" return collator_obj end

languages.fi = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&D\u{0335}<<đ<<<Đ" tailoring "&G\u{0335}<<ǥ<<<Ǥ" tailoring "&N\u{0335}<<ŋ<<<Ŋ" tailoring "&T\u{0335}<<ŧ<<<Ŧ" tailoring "&Y<<ü<<<Ü" tailoring "&Z\u{0335}<<ʒ<<<Ʒ" tailoring "&ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<ö<<<Ö<<ø<<<Ø" return collator_obj end

languages.fil = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&N<ñ<<<Ñ<ng<<<Ng<<<NG" return collator_obj end

languages.fo = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&D<<đ<<<Đ<<ð<<<Ð" tailoring "&t<<<þ/h" tailoring "&T<<<Þ/H" tailoring "&Y<<ü<<<Ü<<ű<<<Ű" tailoring "&ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<<aa<<<Aa<<<AA" end

languages.fr = function(collator_obj) -- French uses default sorting rules by default return collator_obj end

languages.ga = function(collator_obj) return collator_obj end

languages.gl = languages.es

languages.gu = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"gujarati","devanagari", "bengali", "gurmukhi","oriya","tamil","telugu","kannada","malayalam","sinhala" } tailoring "&ૐ<ં<<ઁ<ઃ" return collator_obj end

languages.ha = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&B<ɓ<<<Ɓ" tailoring "&D<ɗ<<<Ɗ" tailoring "&K<ƙ<<<Ƙ" tailoring "&S<sh<<<Sh<<<SH" tailoring "&T<ts<<<Ts<<<TS" tailoring "&Y<ƴ<<<ʼy<<<y<<<Ƴ<<<ʼY<<<Y"	return collator_obj end

languages.haw = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&a<e<<<E<i<<<I<o<<<O<u<<<U" tailoring "&w<ʻ" return collator_obj end

languages.he = function(collator_obj) collator_obj:reorder{"hebrew"} return collator_obj end

languages.hr = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder {"latin", "cyrillic"} tailoring "&C<č<<<Č<ć<<<Ć" tailoring "&D<dž<<<ǆ<<<Dž<<<ǅ<<<DŽ<<<Ǆ<đ<<<Đ" tailoring "&L<lj<<<ǉ<<<Lj<<<ǈ<<<LJ<<<Ǉ" tailoring "&N<nj<<<ǌ<<<Nj<<<ǋ<<<NJ<<<Ǌ" tailoring "&S<š<<<Š" tailoring "&Z<ž<<<Ž" return collator_obj end

languages.hi = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "bengali","devanagari","gurmukhi","gujarati","oriya","tamil","telugu","kannada","malayalam","sinhala" } tailoring "&ॐ<ं<<ँ<ः" return collator_obj end

languages.hsb = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<č<<<Č<ć<<<Ć" tailoring "&E<ě<<<Ě" tailoring "&H<ch<<<cH<<<Ch<<<CH" tailoring "&L<ł<<<Ł" tailoring "&R<ř<<<Ř" tailoring "&S<š<<<Š" tailoring "&Z<ž<<<Ž<ź<<<Ź" return collator_obj end

languages.hu = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<cs<<<Cs<<<CS" tailoring "&D<dz<<<Dz<<<DZ" tailoring "&DZ<dzs<<<Dzs<<<DZS" tailoring "&G<gy<<<Gy<<<GY" tailoring "&L<ly<<<Ly<<<LY" tailoring "&N<ny<<<Ny<<<NY" tailoring "&S<sz<<<Sz<<<SZ" tailoring "&T<ty<<<Ty<<<TY" tailoring "&Z<zs<<<Zs<<<ZS" tailoring "&O<ö<<<Ö<<ő<<<Ő" tailoring "&U<ü<<<Ü<<ű<<<Ű" tailoring "&cs<<<ccs/cs" tailoring "&Cs<<<Ccs/cs" tailoring "&CS<<<CCS/CS" tailoring "&dz<<<ddz/dz" tailoring "&Dz<<<Ddz/dz" tailoring "&DZ<<<DDZ/DZ" tailoring "&dzs<<<ddzs/dzs" tailoring "&Dzs<<<Ddzs/dzs" tailoring "&DZS<<<DDZS/DZS" tailoring "&gy<<<ggy/gy" tailoring "&Gy<<<Ggy/gy" tailoring "&GY<<<GGY/GY" tailoring "&ly<<<lly/ly" tailoring "&Ly<<<Lly/ly" tailoring "&LY<<<LLY/LY" tailoring "&ny<<<nny/ny" tailoring "&Ny<<<Nny/ny" tailoring "&NY<<<NNY/NY" tailoring "&sz<<<ssz/sz" tailoring "&Sz<<<Ssz/sz" tailoring "&SZ<<<SSZ/SZ" tailoring "&ty<<<tty/ty" tailoring "&Ty<<<Tty/ty" tailoring "&TY<<<TTY/TY" tailoring "&zs<<<zzs/zs" tailoring "&Zs<<<Zzs/zs" tailoring "&ZS<<<ZZS/ZS" return collator_obj end

languages.hy = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder {"armenian"} tailoring "&ք<և<<<Եւ" return collator_obj end

languages.id = function(collator_obj) return collator_obj end

languages.ig = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&B<ch<<<Ch<<<CH" tailoring "&G<gb<<<Gb<<<GB<gh<<<Gh<<<GH<gw<<<Gw<<<GW" tailoring "&I<ị<<<Ị" tailoring "&K<kp<<<Kp<<<KP<kw<<<Kw<<<KW" tailoring "&N<ṅ<<<Ṅ<nw<<<Nw<<<NW<ny<<<Ny<<<NY" tailoring "&O<ọ<<<Ọ" tailoring "&S<sh<<<Sh<<<SH" tailoring "&U<ụ<<<Ụ" return collator_obj end

languages.is = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&b<á<<<Á" tailoring "&d<<đ<<<Đ<ð<<<Ð" tailoring "&f<é<<<É" tailoring "&j<í<<<Í" tailoring "&p<ó<<<Ó" tailoring "&v<ú<<<Ú" tailoring "&z<ý<<<Ý" tailoring "&ǀ<æ<<<Æ<<ä<<<Ä<ö<<<Ö<<ø<<<Ø<å<<<Å" return collator_obj end

languages.it = function(collator_obj) return collator_obj end

languages.ja = function(collator_obj) collator_obj:reorder{"latin", "kana", "han"} -- tons of tailorings ommited return collator_obj end

languages.ka = function(collator_obj) collator_obj:reorder{"georgian"} return collator_obj end

languages.kk = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "cyrillic" } tailoring "&Е<ё<<<Ё" tailoring "&Ұ<ү<<<Ү" tailoring "&ь<і<<<І" return collator_obj end

languages.kl = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&D<<đ<<<Đ<<ð<<<Ð" tailoring "&Q<<ĸ<<<K''" tailoring "&t<<<þ/h" tailoring "&T<<<Þ/H" tailoring "&Y<<ü<<<Ü<<ű<<<Ű" tailoring "&ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å" return collator_obj end

languages.km = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "khmer" } tailoring "&។ល។<<<៘" tailoring "&ៈ<<៎<<៏<<៑<<័<<ៈ<<៝<<់<<៉<<៊<<៍" tailoring "&រ<ឫ<ឬ" tailoring "&ល<ឭ<ឮ" tailoring "&រ្ក<<ក៌" tailoring "&រ្ខ<<ខ៌" tailoring "&រ្គ<<គ៌" tailoring "&រ្ឃ<<ឃ៌" tailoring "&រ្ង<<ង៌" tailoring "&រ្ច<<ច៌" tailoring "&រ្ឆ<<ឆ៌" tailoring "&រ្ជ<<ជ៌" tailoring "&រ្ឈ<<ឈ៌" tailoring "&រ្ញ<<ញ៌" tailoring "&រ្ដ<<ដ៌" tailoring "&រ្ឋ<<ឋ៌" tailoring "&រ្ឌ<<ឌ៌" tailoring "&រ្ឍ<<ឍ៌" tailoring "&រ្ណ<<ណ៌" tailoring "&រ្ត<<ត៌" tailoring "&រ្ថ<<ថ៌" tailoring "&រ្ទ<<ទ៌" tailoring "&រ្ធ<<ធ៌" tailoring "&រ្ន<<ន៌" tailoring "&រ្ប<<ប៌" tailoring "&រ្ផ<<ផ៌" tailoring "&រ្ព<<ព៌" tailoring "&រ្ភ<<ភ៌" tailoring "&រ្ម<<ម៌" tailoring "&រ្យ<<យ៌" tailoring "&រ្រ<<រ៌" tailoring "&រ្ឫ<<ឫ៌" tailoring "&រ្ឬ<<ឬ៌" tailoring "&រ្ល<<ល៌" tailoring "&រ្ឭ<<ឭ៌" tailoring "&រ្ឮ<<ឮ៌" tailoring "&រ្វ<<វ៌" tailoring "&រ្ឝ<<ឝ៌" tailoring "&រ្ឞ<<ឞ៌" tailoring "&រ្ស<<ស៌" tailoring "&រ្ហ<<ហ៌" tailoring "&រ្ឡ<<ឡ៌" tailoring "&រ្អ<<អ៌=ឣ៌" tailoring "&អ=ឣ" tailoring "&អា=ឤ" tailoring "&អិ<<ឥ" tailoring "&អី<<ឦ" tailoring "&អុ<<ឧ" tailoring "&អូ<<ឩ" tailoring "&អែ<<ឯ" tailoring "&អៃ<<ឰ" tailoring "&អោ<<ឱ" tailoring "&អៅ<<ឳ" tailoring "&ឧក<<<ឨ" tailoring "&ឩវ<<<ឪ" tailoring "&ឱ<<<ឲ" tailoring "&ៅ<ុំ<ំ<ាំ<ះ<ិះ<ុះ<េះ<ោះ" return collator_obj end

languages.kn = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"kannada","devanagari", "bengali", "gurmukhi","gujarati","oriya","tamil","telugu","malayalam","sinhala" } tailoring "&ಔ<ಂ<ಃ<ೱ<ೲ" return collator_obj end

languages.ko = function(collator_obj) -- this is pretty incomplete, there are tons of tailorings in the xml file -- we will support them maybe in the future collator_obj:reorder{"hangul", "han"} return collator_obj end

languages.kok = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"devanagari", "bengali", "gurmukhi","gujarati","oriya","tamil","telugu","kannada","malayalam","sinhala" } tailoring "&ॐ<ं<<ँ<ः" tailoring "&ह<ळ" tailoring "<क्ष" return collator_obj end

languages.ky = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "cyrillic" } tailoring "&е<ё<<<Ё" return collator_obj end

languages.lb = function(collator_obj) return collator_obj end

languages.lkt = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<č<<<Č" tailoring "&G<ǧ<<<Ǧ" tailoring "&H<ȟ<<<Ȟ" tailoring "&S<š<<<Š" tailoring "&Z<ž<<<Ž" return collator_obj end

languages.ln = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&E<ɛ<<<Ɛ" tailoring "&O<<ɔ<<<Ɔ" return collator_obj end

languages.lo = function(collator_obj) collator_obj:reorder{ "lao" } return collator_obj end

languages.lt = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&̀=̇̀" tailoring "&́=̇́" tailoring "&̃=̇̃" tailoring "&A<<ą<<<Ą" tailoring "&C<č<<<Č" tailoring "&E<<ę<<<Ę<<ė<<<Ė" tailoring "&I<<į<<<Į<<y<<<Y" tailoring "&S<š<<<Š" tailoring "&U<<ų<<<Ų<<ū<<<Ū" tailoring "&Z<ž<<<Ž" return collator_obj end

languages.lv = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&D<č<<<Č" tailoring "&H<ģ<<<Ģ" tailoring "&I<<y<<<Y" tailoring "&L<ķ<<<Ķ" tailoring "&M<ļ<<<Ļ" tailoring "&O<ņ<<<Ņ" tailoring "&S<ŗ<<<Ŗ" tailoring "&T<š<<<Š" tailoring "&Ʒ<ž<<<Ž" return collator_obj end

languages.mk = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{ "cyrillic" } tailoring "&ԃ<ѓ<<<Ѓ" tailoring "&ћ<ќ<<<Ќ" return collator_obj end

languages.ml = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"malayalam","latin", "devanagari", "arabic","tamil", "kannada", "telugu", "bengali", "gurmukhi","gujarati","oriya","sinhala" } tailoring "&ഃ<<ഽ" tailoring "&\u{0D4C}<<\u{0D57}" tailoring "&ക്<<ക്\u{200D}<<<ൿ" tailoring "&ണ്<<ണ്\u{200D}<<<ൺ" tailoring "&ന്<<ന്\u{200D}<<<ൻ" tailoring "&ര്<<ര്\u{200D}<<<ർ" tailoring "&ല്<<ല്\u{200D}<<<ൽ" tailoring "&ള്<<ള്\u{200D}<<<ൾ" tailoring "&മ്<<ം" tailoring "&ന്<<<ൻ്" return collator_obj end

languages.mn = function(collator_obj) collator_obj:reorder{ "cyrillic", "mongolian" } return collator_obj end

languages.mr = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"devanagari", "bengali", "gurmukhi", "gujarati", "oriya", "tamil", "telugu", "kannada", "malayalam", "sinhala"} tailoring "&ॐ<ं<<ँ<ः" tailoring "&ह<ळ" tailoring "<क्ष" tailoring "<ज्ञ" return collator_obj end

languages.ms = function(collator_obj) return collator_obj end

languages.mt = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:uppercase_first tailoring "&c<ċ<<<Ċ" tailoring "&g<ġ<<<Ġ" tailoring "&h<għ<<<gĦ<<<Għ<<<GĦ" tailoring "&i<ħ<<<Ħ" tailoring "&z<ż<<<Ż" return collator_obj end

languages.my = function(collator_obj) -- there are tons of tailoring in the xml file, at the moment we just reorder collator_obj:reorder{ "myanmar" } return collator_obj end

languages.nb = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&D<<đ<<<Đ<<ð<<<Ð" tailoring "&t<<<þ/h" tailoring "&T<<<Þ/H" tailoring "&Y<<ü<<<Ü<<ű<<<Ű" tailoring "&ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<aa<<<Aa<<<AA" return collator_obj end

languages.ne = function(collator_obj) collator_obj:reorder{ "devanagari" } return collator_obj end

languages.nl = function(collator_obj) return collator_obj end

-- languages.nn = languages.nb

languages.no = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:uppercase_first tailoring("&D<<đ<<<Đ<<ð<<<Ð") tailoring("&th<<<þ") tailoring("&TH<<<Þ") tailoring("&Y<<ü<<<Ü<<ű<<<Ű") tailoring("&ǀ<æ<<<Æ<<ä<<<Ä<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<å<<<Å<<<aa<<<Aa<<<AA") tailoring("&oe<<œ<<<Œ") return collator_obj end

languages.om = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&Z<ch<<<Ch<<<CH<dh<<<Dh<<<DH<kh<<<Kh<<<KH<ny<<<Ny<<<NY<ph<<<Ph<<<PH<sh<<<Sh" return collator_obj end

languages["or"] = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"oriya", "devanagari", "bengali", "gurmukhi", "gujarati", "tamil", "telugu", "kannada", "malayalam", "sinhala"} tailoring "&ଔ<ଁ<ଂ<ଃ" tailoring "&ହ<କ୍ଷ" tailoring "&ଯ<<ୟ" return collator_obj end

languages.pa = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"gurmukhi", "devanagari", "bengali", "gujarati", "oriya", "tamil", "telugu", "kannada", "malayalam", "sinhala", "arabic"} tailoring "&ੱ<<ੰ<<ਂ<<ਁ<<਼" tailoring "&ੜ<੍" return collator_obj end

languages.pl = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&A<ą<<<Ą" tailoring "&C<ć<<<Ć" tailoring "&E<ę<<<Ę" tailoring "&L<ł<<<Ł" tailoring "&N<ń<<<Ń" tailoring "&O<ó<<<Ó" tailoring "&S<ś<<<Ś" tailoring "&Z<ź<<<Ź<ż<<<Ż" return collator_obj end

languages.ps = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"arabic"} tailoring "&َ<<ِ<<ُ<<ً<<ٍ<<ٌ" tailoring "&ا<آ" tailoring "&ا<<أ<<ٲ<<ٱ<<إ<<ٳ<ء" tailoring "&ت<ټ<<ٹ" tailoring "&ج<ځ<<حٔ" tailoring "&چ<څ" tailoring "&د<ډ<<ڈ" tailoring "&ر<ړ<<ڑ" tailoring "&ژ<ږ" tailoring "&ک<<*ڪك" tailoring "&ګ<<گ" tailoring "&ڼ<<ڻ" tailoring "&و<<ؤ<<ۇ<<ۉ" tailoring "&ه<<<ۀ<<<هٔ<<*ەہھةۃ" tailoring "&ی<<*ىےيېۍ<<یٔ<<<ىٔ<<<ئ" tailoring "&\u{00A0}<<\u{200C}<<\u{200D}" return collator_obj end

languages.pt = function(collator_obj) return collator_obj end

languages.ro = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&A<ă<<<Ă<â<<<Â" tailoring "&I<î<<<Î" tailoring "&S<ş=ș<<<Ş=Ș" tailoring "&T<ţ=ț<<<Ţ=Ț" return collator_obj end

languages.ru = function(collator_obj) collator_obj:reorder{ "cyrillic" } return collator_obj end

languages.se = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&b<á<<<Á" tailoring "&d<č<<<Č<ʒ<<<Ʒ<ǯ<<<Ǯ" tailoring "&e<đ<<<Đ<<ð<<<Ð" tailoring "&h<ǧ<<<Ǧ<ǥ<<<Ǥ" tailoring "&l<ǩ<<<Ǩ" tailoring "&o<ŋ<<<Ŋ<<ń<<<Ń<<ñ<<<Ñ" tailoring "&t<š<<<Š" tailoring "&u<ŧ<<<Ŧ<<þ<<<Þ" tailoring "&y<<ü<<<Ü<<ű<<<Ű" tailoring "&ǀ<ž<<<Ž<ø<<<Ø<<œ<<<Œ<æ<<<Æ<å<<<Å<<ȧ<<<Ȧ<ä<<<Ä<<ã<<<Ã<ö<<<Ö<<ő<<<Ő<<õ<<<Õ<<ô<<<Ô<<ǫ<<<Ǫ" return collator_obj end

languages.si = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"sinhala","devanagari", "bengali", "gurmukhi", "gujarati", "oriya", "tamil", "telugu", "kannada", "malayalam"} tailoring "&ඖ<ං<ඃ" tailoring "&ඥ<ඤ" return collator_obj end

languages.sk = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&A<ä<<<Ä" tailoring "&C<č<<<Č" tailoring "&H<ch<<<cH<<<Ch<<<CH" tailoring "&O<ô<<<Ô" tailoring "&R<ř<<<Ř" tailoring "&S<š<<<Š" tailoring "&Z<ž<<<Ž" return collator_obj end

languages.sl = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<č<<<Č" tailoring "&S<š<<<Š" tailoring "&Z<ž<<<Ž" return collator_obj end

languages.smn = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&A<â<<<Â<<à<<<À" tailoring "&C<č<<<Č" tailoring "&D<đ<<<Đ" tailoring "&Ŋ<<ñ<<<Ñ<<ń<<<Ń" tailoring "&S<š<<<Š" tailoring "&Z<ž<<<Ž<æ<<<Æ<ø<<<Ø<å<<<Å<ã<<<Ã<ä<<<Ä<á<<<Á<ö<<<Ö" return collator_obj end

languages.sq = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&D<ç<<<Ç" tailoring "&E<dh<<<Dh<<<DH" tailoring "&F<ë<<<Ë" tailoring "&H<gj<<<Gj<<<GJ" tailoring "&M<ll<<<Ll<<<LL" tailoring "&O<nj<<<Nj<<<NJ" tailoring "&S<rr<<<Rr<<<RR" tailoring "&T<sh<<<Sh<<<SH" tailoring "&U<th<<<Th<<<TH" tailoring "&Y<xh<<<Xh<<<XH" tailoring "&Ʒ<zh<<<Zh<<<ZH" return collator_obj end

languages.sr = function(collator_obj) collator_obj:reorder{ "cyrillic" } return collator_obj end

languages.sr_latn = languages.hr

languages.sv = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&D<<đ<<<Đ<<ð<<<Ð" tailoring "&t<<<þ/h" tailoring "&T<<<Þ/H" tailoring "&v<<<V<<w<<<W" tailoring "&Y<<ü<<<Ü<<ű<<<Ű" tailoring "&ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô" return collator_obj end

languages.sw = function(collator_obj) return collator_obj end

languages.ta = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"tamil", "devanagari", "bengali", "gurmukhi", "gujarati", "oriya", "telugu", "kannada", "malayalam", "sinhala"} tailoring "&ஔ<ஂ<ஃ" tailoring "&ஹ<க்ஷ" tailoring "&க<க்" tailoring "&ங<ங்" tailoring "&ச<ச்" tailoring "&ஞ<ஞ்" tailoring "&ட<ட்" tailoring "&ண<ண்" tailoring "&த<த்" tailoring "&ந<ந்" tailoring "&ப<ப்" tailoring "&ம<ம்" tailoring "&ய<ய்" tailoring "&ர<ர்" tailoring "&ல<ல்" tailoring "&வ<வ்" tailoring "&ழ<ழ்" tailoring "&ள<ள்" tailoring "&ற<ற்" tailoring "&ன<ன்" tailoring "&ஜ<ஜ்" tailoring "&ஶ<ஶ்" tailoring "&ஷ<ஷ்" tailoring "&ஸ<ஸ்" tailoring "&ஹ<ஹ்" tailoring "&க்ஷ<க்ஷ்" return collator_obj end

languages.te = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"telugu", "devanagari", "bengali", "gurmukhi", "gujarati", "oriya", "tamil", "kannada", "malayalam", "sinhala"} tailoring "&ఔ<ఁ<ం<ః" return collator_obj end

languages.th = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"thai"} tailoring "&๚<ฯ" tailoring "&๛<ๆ" tailoring "&๎<<์" tailoring "&ะ<ํ" tailoring "&า<<<ๅ" tailoring "&าํ<<<ํา<<<ำ" tailoring "&ๅํ<<<ํๅ" tailoring "&ไ<ฺ" return collator_obj end

languages.tk = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<ç<<<Ç" tailoring "&E<ä<<<Ä" tailoring "&J<ž<<<Ž" tailoring "&N<ň<<<Ň" tailoring "&O<ö<<<Ö" tailoring "&S<ş<<<Ş" tailoring "&U<ü<<<Ü" tailoring "&Y<ý<<<Ý" return collator_obj end

languages.to = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&n<ng<<<Ng<<<NG<<<ŋ<<<Ŋ" tailoring "&z<ʻ<<<ʽ" tailoring "&a<<á<<<Á<<ā<<<Ā" tailoring "&e<<é<<<É<<ē<<<Ē" tailoring "&i<<í<<<Í<<ī<<<Ī" tailoring "&o<<ó<<<Ó<<ō<<<Ō" tailoring "&u<<ú<<<Ú<<ū<<<Ū" return collator_obj end

languages.tr = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&C<ç<<<Ç" tailoring "&G<ğ<<<Ğ" tailoring "&i<ı<<<I" tailoring "&i<<<İ" tailoring "&O<ö<<<Ö" tailoring "&S<ş<<<Ş" tailoring "&U<ü<<<Ü" return collator_obj end

languages.ug = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"arabic"} tailoring "&ا<ە<ب" tailoring "&ك<گ<ڭ<ل" tailoring "&ھ<و<ۇ<ۆ<ۈ<ۋ<ې<ى<ي" return collator_obj end

languages.uk = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"cyrillic"} tailoring "&Г<ґ<<<Ґ" tailoring "&ꙇ<ї<<<\u{A676}<<<Ї" return collator_obj end

languages.ur = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"arabic"} tailoring "&ا<<أ<آ<ب<بھ<پ<پھ<ت<تھ<ٹ<ٹھ<ث<ج<جھ<چ<چھ<ح<خ<د<دھ<ڈ<ڈھ<ذ<ر<رھ<ڑ<ڑھ<ز<ژ<س<ش<ص<ض<ط<ظ <ع<غ<ف<ق<ک<کھ<گ<گھ<ل<لھ<م<مھ<ن<نھ<ں<ںھ<و<<ؤ<وھ<ہ<<ۂ<ھ<ۃ<ء<ی<<ئ<یھ<ے<<ۓ" tailoring "&\u{0652}<<\u{064E}<<\u{0650}<<\u{064F}<<\u{0670}<<\u{0656}<<\u{0657}<<\u{064B}<<\u{064D}<<\u{064C}<<\u{0654}<<\u{0651}<<\u{0658}<<\u{0653}" tailoring "&<<<\u{0610}<<<\u{0611}<<<\u{0613}<<<\u{0612}<<<\u{0614}" return collator_obj end

languages.uz = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&[before 1]ʒ<oʻ=o‘=o<<<Oʻ=O‘=O" tailoring "<gʻ=g‘=g<<<Gʻ=G‘=G" tailoring "<sh<<<Sh<<<SH" tailoring "<ch<<<Ch<<<CH" return collator_obj end

languages.vi = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&̀<<̉<<̃<<́<<̣" tailoring "&a<ă<<<Ă<â<<<Â" tailoring "&d<đ<<<Đ" tailoring "&e<ê<<<Ê" tailoring "&o<ô<<<Ô<ơ<<<Ơ" tailoring "&u<ư<<<Ư" return collator_obj end

languages.vo = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&A<ä<<<Ä" tailoring "&O<ö<<<Ö" tailoring "&U<ü<<<Ü" return collator_obj end

languages.wae = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&á=aa" tailoring "&ã=ää" tailoring "&é=ee" tailoring "&í=ii" tailoring "&ó=oo" tailoring "&õ=öö" tailoring "&č=ch" tailoring "&š=sch" tailoring "&ú=uu" tailoring "&ũ=üü" return collator_obj end

languages.wo = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&A<à<<<À" tailoring "&E<é<<<É<ë<<<Ë" tailoring "&N<ñ<<<Ñ<ŋ<<<Ŋ" tailoring "&O<ó<<<Ó" return collator_obj end

languages.yi = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"hebrew"} tailoring "&''<<׳" tailoring "&'\"'<<״"	tailoring "&ב<בֿ"	tailoring "&ו<<וּ<<וו<<וי"	tailoring "&י<<יִ<<יי<<ײַ"	tailoring "&כ<כּ"	tailoring "&פ<פּ"	tailoring "&פֿ<<<ף"	tailoring "&ש<שׂ"	tailoring "&ת<תּ"	return collator_obj end

languages.yo = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end tailoring "&E<ẹ<<<Ẹ" tailoring "&G<gb<<<Gb<<<GB" tailoring "&O<ọ<<<Ọ" tailoring "&S<ṣ<<<Ṣ" return collator_obj end

languages.zj = function(collator_obj) local tailoring = function(s) tailoring_lib.tailor_string(collator_obj, s) end collator_obj:reorder{"han"} -- tons of tailorings ommited return collator_obj end

languages.zu = function(collator_obj) return collator_obj end

return languages