diff options
author | Hans Hagen <pragma@wxs.nl> | 2008-08-04 15:59:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2008-08-04 15:59:00 +0200 |
commit | f8ba0550d77fd6e2b307ff9dd3175fc0c613b8e2 (patch) | |
tree | ae27ca6edd0b2f1bcbe315d241b8152107d4e6a3 /tex/context/base/sort-lan.lua | |
parent | 1d63a6eae86a6b78d4563ed60521449e4bf89f3c (diff) | |
download | context-f8ba0550d77fd6e2b307ff9dd3175fc0c613b8e2.tar.gz |
stable 2008.08.04 15:59
Diffstat (limited to 'tex/context/base/sort-lan.lua')
-rw-r--r-- | tex/context/base/sort-lan.lua | 416 |
1 files changed, 212 insertions, 204 deletions
diff --git a/tex/context/base/sort-lan.lua b/tex/context/base/sort-lan.lua index dd3a2353f..8d8fdb1a0 100644 --- a/tex/context/base/sort-lan.lua +++ b/tex/context/base/sort-lan.lua @@ -11,240 +11,248 @@ if not versions then versions = { } end versions['sort-lan'] = 1.001 -- english -do - -- The next one can be more efficient when not indexed this way, but - -- other languages are sparse so for the moment we keep this one. - - sorters.entries['en'] = { - [ 1] = "a", [ 3] = "b", [ 5] = "c", [ 7] = "d", [ 9] = "e", - [11] = "f", [13] = "g", [15] = "h", [17] = "i", [19] = "j", - [21] = "k", [23] = "l", [25] = "m", [27] = "n", [29] = "o", - [31] = "p", [33] = "q", [35] = "r", [37] = "s", [39] = "t", - [41] = "u", [43] = "v", [45] = "w", [47] = "x", [49] = "y", - [51] = "z", - [ 2] = 1, [ 4] = 3, [ 6] = 5, [ 8] = 7, [10] = 9, - [12] = 11, [14] = 13, [16] = 15, [18] = 17, [20] = 19, - [22] = 21, [24] = 23, [26] = 25, [28] = 27, [30] = 29, - [32] = 31, [34] = 33, [36] = 35, [38] = 37, [40] = 39, - [42] = 41, [44] = 43, [46] = 45, [48] = 47, [50] = 49, - [52] = 51, - } - sorters.mappings['en'] = { - ["a"] = 1, ["b"] = 3, ["c"] = 5, ["d"] = 7, ["e"] = 9, - ["f"] = 11, ["g"] = 13, ["h"] = 15, ["i"] = 17, ["j"] = 19, - ["k"] = 21, ["l"] = 23, ["m"] = 25, ["n"] = 27, ["o"] = 29, - ["p"] = 31, ["q"] = 33, ["r"] = 35, ["s"] = 37, ["t"] = 39, - ["u"] = 41, ["v"] = 43, ["w"] = 45, ["x"] = 47, ["y"] = 49, - ["z"] = 51, - ["A"] = 2, ["B"] = 4, ["C"] = 6, ["D"] = 8, ["E"] = 10, - ["F"] = 12, ["G"] = 14, ["H"] = 16, ["I"] = 18, ["J"] = 20, - ["K"] = 22, ["L"] = 24, ["M"] = 26, ["N"] = 28, ["O"] = 30, - ["P"] = 32, ["Q"] = 34, ["R"] = 36, ["S"] = 38, ["T"] = 40, - ["U"] = 42, ["V"] = 44, ["W"] = 46, ["X"] = 48, ["Y"] = 50, - ["Z"] = 52, - } -end +-- The next one can be more efficient when not indexed this way, but +-- other languages are sparse so for the moment we keep this one. + +sorters.entries['en'] = { + [ 1] = "a", [ 3] = "b", [ 5] = "c", [ 7] = "d", [ 9] = "e", + [11] = "f", [13] = "g", [15] = "h", [17] = "i", [19] = "j", + [21] = "k", [23] = "l", [25] = "m", [27] = "n", [29] = "o", + [31] = "p", [33] = "q", [35] = "r", [37] = "s", [39] = "t", + [41] = "u", [43] = "v", [45] = "w", [47] = "x", [49] = "y", + [51] = "z", + [ 2] = 1, [ 4] = 3, [ 6] = 5, [ 8] = 7, [10] = 9, + [12] = 11, [14] = 13, [16] = 15, [18] = 17, [20] = 19, + [22] = 21, [24] = 23, [26] = 25, [28] = 27, [30] = 29, + [32] = 31, [34] = 33, [36] = 35, [38] = 37, [40] = 39, + [42] = 41, [44] = 43, [46] = 45, [48] = 47, [50] = 49, + [52] = 51, +} +sorters.mappings['en'] = { + ["a"] = 1, ["b"] = 3, ["c"] = 5, ["d"] = 7, ["e"] = 9, + ["f"] = 11, ["g"] = 13, ["h"] = 15, ["i"] = 17, ["j"] = 19, + ["k"] = 21, ["l"] = 23, ["m"] = 25, ["n"] = 27, ["o"] = 29, + ["p"] = 31, ["q"] = 33, ["r"] = 35, ["s"] = 37, ["t"] = 39, + ["u"] = 41, ["v"] = 43, ["w"] = 45, ["x"] = 47, ["y"] = 49, + ["z"] = 51, + ["A"] = 2, ["B"] = 4, ["C"] = 6, ["D"] = 8, ["E"] = 10, + ["F"] = 12, ["G"] = 14, ["H"] = 16, ["I"] = 18, ["J"] = 20, + ["K"] = 22, ["L"] = 24, ["M"] = 26, ["N"] = 28, ["O"] = 30, + ["P"] = 32, ["Q"] = 34, ["R"] = 36, ["S"] = 38, ["T"] = 40, + ["U"] = 42, ["V"] = 44, ["W"] = 46, ["X"] = 48, ["Y"] = 50, + ["Z"] = 52, +} -- dutch -do - sorters.replacements['nl'] = { { "ij", 'y' }, { "IJ", 'Y' } } - sorters.entries ['nl'] = sorters.entries ['en'] - sorters.mappings ['nl'] = sorters.mappings['en'] -end +sorters.replacements['nl'] = { { "ij", 'y' }, { "IJ", 'Y' } } +sorters.entries ['nl'] = sorters.entries ['en'] +sorters.mappings ['nl'] = sorters.mappings['en'] -- czech -do - - local uc = unicode.utf8.char - local ub = unicode.utf8.byte - - sorters.replacements['cz'] = { - [1] = { "ch", uc(0xFF01) } - } - - sorters.entries['cz'] = { - [ 1] = "a", - [ 2] = 1, - [ 3] = "b", - [ 4] = "c", - [ 5] = uc(0x010D), -- ccaron - [ 6] = "d", - [ 7] = uc(0x010F), -- dcaron - [ 8] = "e", - [ 9] = 8, - [10] = 8, - [11] = "f", - [12] = "g", - [13] = "h", - [14] = "ch", - [15] = "i", - [16] = 15, - [17] = "j", - [18] = "k", - [19] = "l", - [20] = "m", - [21] = "n", - [22] = uc(0x0147), -- ncaron - [23] = "o", - [24] = "p", - [25] = "q", - [26] = "r", - [27] = uc(0x0147), -- rcaron - [28] = "s", - [29] = uc(0x0161), -- scaron - [30] = "t", - [31] = uc(0x0165), -- tcaron - [32] = "u", - [33] = 32, - [34] = 32, - [35] = "v", - [36] = "w", - [37] = "x", - [38] = "y", - [49] = "z", - [40] = uc(0x017E), -- zcaron - } - - sorters.mappings['cz'] = { - ['a'] = 1, -- a - [uc(0x00E1)] = 2, -- aacute - ['b'] = 3, -- b - ['c'] = 4, -- c - [uc(0x010D)] = 5, -- ccaron - ['d'] = 6, -- d - [uc(0x010F)] = 7, -- dcaron - ['e'] = 8, -- e - [uc(0x00E9)] = 9, -- eacute - [uc(0x011B)] = 10, -- ecaron - ['f'] = 11, -- f - ['g'] = 12, -- g - ['h'] = 13, -- h - [uc(0xFF01)] = 14, -- ch - ['i'] = 15, -- i - [uc(0x00ED)] = 16, -- iacute - ['j'] = 17, -- j - ['k'] = 18, -- k - ['l'] = 19, -- l - ['m'] = 20, -- m - ['n'] = 21, -- n - [uc(0x0147)] = 22, -- ncaron - ['o'] = 23, -- o - ['p'] = 24, -- p - ['q'] = 25, -- q - ['s'] = 26, -- r - [uc(0x0147)] = 27, -- rcaron - ['s'] = 28, -- s - [uc(0x0161)] = 29, -- scaron - ['t'] = 30, -- t - [uc(0x0165)] = 31, -- tcaron - ['u'] = 32, -- u - [uc(0x00FA)] = 33, -- uacute - [uc(0x01F6)] = 34, -- uring - ['v'] = 35, -- v - ['w'] = 36, -- w - ['x'] = 37, -- x - ['y'] = 38, -- y - ['z'] = 49, -- z - [uc(0x017E)] = 40, -- zcaron - } - -end - --- The german vectors are provided by Wolfgang Schuster. + +local uc = unicode.utf8.char +local ub = unicode.utf8.byte + +sorters.replacements['cz'] = { + [1] = { "ch", uc(0xFF01) } +} + +sorters.entries['cz'] = { + [ 1] = "a", + [ 2] = 1, + [ 3] = "b", + [ 4] = "c", + [ 5] = uc(0x010D), -- ccaron + [ 6] = "d", + [ 7] = uc(0x010F), -- dcaron + [ 8] = "e", + [ 9] = 8, + [10] = 8, + [11] = "f", + [12] = "g", + [13] = "h", + [14] = "ch", + [15] = "i", + [16] = 15, + [17] = "j", + [18] = "k", + [19] = "l", + [20] = "m", + [21] = "n", + [22] = uc(0x0147), -- ncaron + [23] = "o", + [24] = "p", + [25] = "q", + [26] = "r", + [27] = uc(0x0147), -- rcaron + [28] = "s", + [29] = uc(0x0161), -- scaron + [30] = "t", + [31] = uc(0x0165), -- tcaron + [32] = "u", + [33] = 32, + [34] = 32, + [35] = "v", + [36] = "w", + [37] = "x", + [38] = "y", + [49] = "z", + [40] = uc(0x017E), -- zcaron +} + +sorters.mappings['cz'] = { + ['a'] = 1, -- a + [uc(0x00E1)] = 2, -- aacute + ['b'] = 3, -- b + ['c'] = 4, -- c + [uc(0x010D)] = 5, -- ccaron + ['d'] = 6, -- d + [uc(0x010F)] = 7, -- dcaron + ['e'] = 8, -- e + [uc(0x00E9)] = 9, -- eacute + [uc(0x011B)] = 10, -- ecaron + ['f'] = 11, -- f + ['g'] = 12, -- g + ['h'] = 13, -- h + [uc(0xFF01)] = 14, -- ch + ['i'] = 15, -- i + [uc(0x00ED)] = 16, -- iacute + ['j'] = 17, -- j + ['k'] = 18, -- k + ['l'] = 19, -- l + ['m'] = 20, -- m + ['n'] = 21, -- n + [uc(0x0147)] = 22, -- ncaron + ['o'] = 23, -- o + ['p'] = 24, -- p + ['q'] = 25, -- q + ['s'] = 26, -- r + [uc(0x0147)] = 27, -- rcaron + ['s'] = 28, -- s + [uc(0x0161)] = 29, -- scaron + ['t'] = 30, -- t + [uc(0x0165)] = 31, -- tcaron + ['u'] = 32, -- u + [uc(0x00FA)] = 33, -- uacute + [uc(0x01F6)] = 34, -- uring + ['v'] = 35, -- v + ['w'] = 36, -- w + ['x'] = 37, -- x + ['y'] = 38, -- y + ['z'] = 49, -- z + [uc(0x017E)] = 40, -- zcaron +} + +-- German (by Wolfgang Schuster) -- DIN 5007-1 -do - sorters.entries ['DIN 5007-1'] = sorters.entries ['en'] - sorters.mappings ['DIN 5007-1'] = sorters.mappings['en'] -end +sorters.entries ['DIN 5007-1'] = sorters.entries ['en'] +sorters.mappings ['DIN 5007-1'] = sorters.mappings['en'] -- DIN 5007-2 -do - sorters.replacements['DIN 5007-2'] = { - { "ä", 'ae' }, - { "ö", 'oe' }, - { "ü", 'ue' }, - { "Ä", 'Ae' }, - { "Ö", 'Oe' }, - { "Ü", 'Ue' } - } - sorters.entries ['DIN 5007-2'] = sorters.entries ['en'] - sorters.mappings ['DIN 5007-2'] = sorters.mappings['en'] -end +sorters.replacements['DIN 5007-2'] = { + { "ä", 'ae' }, + { "ö", 'oe' }, + { "ü", 'ue' }, + { "Ä", 'Ae' }, + { "Ö", 'Oe' }, + { "Ü", 'Ue' } +} + +sorters.entries ['DIN 5007-2'] = sorters.entries ['en'] +sorters.mappings ['DIN 5007-2'] = sorters.mappings['en'] -- Duden -do - sorters.replacements['Duden'] = { { "ß", 's' } } - sorters.entries ['Duden'] = sorters.entries ['en'] - sorters.mappings ['Duden'] = sorters.mappings['en'] -end +sorters.replacements['Duden'] = { { "ß", 's' } } +sorters.entries ['Duden'] = sorters.entries ['en'] +sorters.mappings ['Duden'] = sorters.mappings['en'] -- new german -do - sorters.entries ['de'] = sorters.entries ['en'] - sorters.mappings ['de'] = sorters.mappings['en'] -end +sorters.entries ['de'] = sorters.entries ['en'] +sorters.mappings ['de'] = sorters.mappings['en'] -- old german -do - sorters.entries ['deo'] = sorters.entries ['de'] - sorters.mappings ['deo'] = sorters.mappings['de'] -end +sorters.entries ['deo'] = sorters.entries ['de'] +sorters.mappings ['deo'] = sorters.mappings['de'] -- german - Germany -do - sorters.entries ['de-DE'] = sorters.entries ['de'] - sorters.mappings ['de-DE'] = sorters.mappings['de'] -end +sorters.entries ['de-DE'] = sorters.entries ['de'] +sorters.mappings ['de-DE'] = sorters.mappings['de'] -- german - Swiss -do - sorters.entries ['de-CH'] = sorters.entries ['de'] - sorters.mappings ['de-CH'] = sorters.mappings['de'] -end +sorters.entries ['de-CH'] = sorters.entries ['de'] +sorters.mappings ['de-CH'] = sorters.mappings['de'] -- german - Austria -do - sorters.entries['de-AT'] = { - [ 1] = "a", [ 3] = 1, [ 5] = "b", [ 7] = "c", [ 9] = "d", - [11] = "e", [13] = "f", [15] = "g", [17] = "h", [19] = "i", - [21] = "j", [23] = "k", [25] = "l", [27] = "m", [29] = "n", - [31] = "o", [33] = 31, [35] = "p", [37] = "q", [39] = "r", - [41] = "s", [43] = "t", [45] = "u", [47] = 45, [49] = "v", - [51] = "w", [53] = "y", [55] = "y", [57] = "z", - [ 2] = 1, [ 4] = 3, [ 6] = 5, [ 8] = 7, [10] = 9, - [12] = 11, [14] = 13, [16] = 15, [18] = 17, [20] = 19, - [22] = 21, [24] = 23, [26] = 25, [28] = 27, [30] = 29, - [32] = 31, [34] = 33, [36] = 35, [38] = 37, [40] = 39, - [42] = 41, [44] = 43, [46] = 45, [48] = 47, [50] = 49, - [52] = 51, [54] = 53, [56] = 55, [58] = 57, - } - sorters.mappings['de-AT'] = { - ["a"] = 1, ["ä"] = 3, ["b"] = 5, ["c"] = 7, ["d"] = 9, - ["e"] = 11, ["f"] = 13, ["g"] = 15, ["h"] = 17, ["i"] = 19, - ["j"] = 21, ["k"] = 23, ["l"] = 25, ["m"] = 27, ["n"] = 29, - ["o"] = 31, ["ö"] = 33, ["p"] = 35, ["q"] = 37, ["r"] = 39, - ["s"] = 41, ["t"] = 43, ["u"] = 45, ["ü"] = 47, ["v"] = 49, - ["w"] = 51, ["x"] = 53, ["y"] = 55, ["z"] = 57, - ["A"] = 2, ["Ä"] = 4, ["B"] = 6, ["C"] = 8, ["D"] = 10, - ["E"] = 12, ["F"] = 14, ["G"] = 16, ["H"] = 18, ["I"] = 20, - ["J"] = 22, ["K"] = 24, ["L"] = 26, ["M"] = 28, ["N"] = 30, - ["O"] = 32, ["Ö"] = 34, ["P"] = 36, ["Q"] = 38, ["R"] = 40, - ["S"] = 42, ["T"] = 44, ["U"] = 46, ["Ü"] = 48, ["V"] = 50, - ["W"] = 52, ["X"] = 54, ["Y"] = 56, ["Z"] = 58, - } -end - +sorters.entries['de-AT'] = { + [ 1] = "a", [ 3] = 1, [ 5] = "b", [ 7] = "c", [ 9] = "d", + [11] = "e", [13] = "f", [15] = "g", [17] = "h", [19] = "i", + [21] = "j", [23] = "k", [25] = "l", [27] = "m", [29] = "n", + [31] = "o", [33] = 31, [35] = "p", [37] = "q", [39] = "r", + [41] = "s", [43] = "t", [45] = "u", [47] = 45, [49] = "v", + [51] = "w", [53] = "y", [55] = "y", [57] = "z", + [ 2] = 1, [ 4] = 3, [ 6] = 5, [ 8] = 7, [10] = 9, + [12] = 11, [14] = 13, [16] = 15, [18] = 17, [20] = 19, + [22] = 21, [24] = 23, [26] = 25, [28] = 27, [30] = 29, + [32] = 31, [34] = 33, [36] = 35, [38] = 37, [40] = 39, + [42] = 41, [44] = 43, [46] = 45, [48] = 47, [50] = 49, + [52] = 51, [54] = 53, [56] = 55, [58] = 57, +} +sorters.mappings['de-AT'] = { + ["a"] = 1, ["ä"] = 3, ["b"] = 5, ["c"] = 7, ["d"] = 9, + ["e"] = 11, ["f"] = 13, ["g"] = 15, ["h"] = 17, ["i"] = 19, + ["j"] = 21, ["k"] = 23, ["l"] = 25, ["m"] = 27, ["n"] = 29, + ["o"] = 31, ["ö"] = 33, ["p"] = 35, ["q"] = 37, ["r"] = 39, + ["s"] = 41, ["t"] = 43, ["u"] = 45, ["ü"] = 47, ["v"] = 49, + ["w"] = 51, ["x"] = 53, ["y"] = 55, ["z"] = 57, + ["A"] = 2, ["Ä"] = 4, ["B"] = 6, ["C"] = 8, ["D"] = 10, + ["E"] = 12, ["F"] = 14, ["G"] = 16, ["H"] = 18, ["I"] = 20, + ["J"] = 22, ["K"] = 24, ["L"] = 26, ["M"] = 28, ["N"] = 30, + ["O"] = 32, ["Ö"] = 34, ["P"] = 36, ["Q"] = 38, ["R"] = 40, + ["S"] = 42, ["T"] = 44, ["U"] = 46, ["Ü"] = 48, ["V"] = 50, + ["W"] = 52, ["X"] = 54, ["Y"] = 56, ["Z"] = 58, +} + +-- finish (by Wolfgang Schuster) + +sorters.entries['fi'] = { + [ 1] = "a", [ 3] = "b", [ 5] = "c", [ 7] = "d", [ 9] = "e", + [11] = "f", [13] = "g", [15] = "h", [17] = "i", [19] = "j", + [21] = "k", [23] = "l", [25] = "m", [27] = "n", [29] = "o", + [31] = "p", [33] = "q", [35] = "r", [37] = "s", [39] = "t", + [41] = "u", [43] = "v", [45] = "w", [47] = "x", [49] = "y", + [51] = "z", [53] = "å", [55] = "ä", [57] = "ö", + [ 2] = 1, [ 4] = 3, [ 6] = 5, [ 8] = 7, [10] = 9, + [12] = 11, [14] = 13, [16] = 15, [18] = 17, [20] = 19, + [22] = 21, [24] = 23, [26] = 25, [28] = 27, [30] = 29, + [32] = 31, [34] = 33, [36] = 35, [38] = 37, [40] = 39, + [42] = 41, [44] = 43, [46] = 45, [48] = 47, [50] = 49, + [52] = 51, [54] = 53, [56] = 55, [58] = 57, +} +sorters.mappings['fi'] = { + ["a"] = 1, ["b"] = 3, ["c"] = 5, ["d"] = 7, ["e"] = 9, + ["f"] = 11, ["g"] = 13, ["h"] = 15, ["i"] = 17, ["j"] = 19, + ["k"] = 21, ["l"] = 23, ["m"] = 25, ["n"] = 27, ["o"] = 29, + ["p"] = 31, ["q"] = 33, ["r"] = 35, ["s"] = 37, ["t"] = 39, + ["u"] = 41, ["v"] = 43, ["w"] = 45, ["x"] = 47, ["y"] = 49, + ["z"] = 51, ["å"] = 53, ["ä"] = 55, ["ö"] = 57, + ["A"] = 2, ["B"] = 4, ["C"] = 6, ["D"] = 8, ["E"] = 10, + ["F"] = 12, ["G"] = 14, ["H"] = 16, ["I"] = 18, ["J"] = 20, + ["K"] = 22, ["L"] = 24, ["M"] = 26, ["N"] = 28, ["O"] = 30, + ["P"] = 32, ["Q"] = 34, ["R"] = 36, ["S"] = 38, ["T"] = 40, + ["U"] = 42, ["V"] = 44, ["W"] = 46, ["X"] = 48, ["Y"] = 50, + ["Z"] = 52, ["Å"] = 54, ["Ä"] = 56, ["Ö"] = 58, +} --~ sorters.test = '' --~ sorters.test = 'nl' |