----------------------------------------------------------------------- -- FILE: xindex-cfg-uca.lua -- DESCRIPTION: configuration file for lua-uca -- REQUIREMENTS: -- AUTHOR: Herbert Voß -- LICENSE: LPPL1.3 -- -- $Id: xindex-cfg-uca.lua 22 2022-02-07 12:18:15Z hvoss $ ----------------------------------------------------------------------- if not modules then modules = { } end modules ['xindex-cfg-lua'] = { version = 0.64, comment = "configuration to xindex-cfg-uca.lua", author = "Herbert Voss", copyright = "Herbert Voss", license = "LPPL 1.3" } languages.fr = function(collator_obj) print("Using languages.fr") -- reverse search for accents in French (recommended): collator_obj.accents_backward = true -- accents: sorting order in French local tailoring = function(s) collator_obj:tailor_string(s) end tailoring("&æ=ae") tailoring("&Æ=AE") tailoring("&Å“=oe") tailoring("&Å’=OE") tailoring("&Å’<Å“") tailoring("&th<þ<<<Þ") -- Canadian, see SGQRI004.pdf tailoring("&a<<<A<<á<<<Ã<<à <<<À<<â<<<Â<<ä<<<Ä") tailoring("&o<<<O<<ó<<<Ó<<ò<<<Ã’<<ô<<<Ô<<ö<<<Ö") tailoring("&e<<<E<<é<<<É<<è<<<È<<ê<<<Ê") -- lowercase before uppercase in French -- collator_obj:uppercase_first() return collator_obj end -- tailoring("&Ç€<æ<<<Æ<<ä<<<Ä<ø<<<Ø<<ö<<<Ö<<Å‘<<<Å<Ã¥<<<Ã…<<<aa<<<Aa<<<AA") -- put any additional code for lua-uca here --- languages.no = function(collator_obj) print("Using languages.no") local tailoring = function(s) collator_obj:tailor_string(s) end collator_obj:uppercase_first() -- tailoring("&[before 1]b<á<<<Ã") -- tailoring("&[before 1]d<Ä<<<ÄŒ<Ê’<<<Æ·<ǯ<<<Ç®") -- tailoring("&[before 1]e<Ä‘<<<Ä<<ð<<<Ã") -- tailoring("&[before 1]h<ǧ<<<Ǧ<Ç¥<<<Ǥ") -- tailoring("&[before 1]l<Ç©<<<Ǩ") -- tailoring("&[before 1]o<Å‹<<<ÅŠ<<Å„<<<Ń<<ñ<<<Ñ") -- tailoring("&[before 1]t<Å¡<<<Å ") -- tailoring("&[before 1]u<ŧ<<<Ŧ<<þ<<<Þ") -- tailoring("&y<<ü<<<Ãœ<<ű<<<Å°") -- tailoring("&[before 1]Ç€<ž<<<Ž<ø<<<Ø<<Å“<<<Å’<æ<<<Æ<Ã¥<<<Ã…<<ȧ<<<Ȧ<ä<<<Ä<<ã<<<Ã<ö<<<Ö<<Å‘<<<Å<<õ<<<Õ<<ô<<<Ô<<Ç«<<<Ǫ") -- tailoring("&D<<Ä‘<<<Ä<<ð<<<Ã") -- tailoring("&th<<<þ") -- tailoring("&TH<<<Þ") -- tailoring("&Y<<ü<<<Ãœ<<ű<<<Å°") -- tailoring("&Ç€<æ<<<Æ<<ä<<<Ä<ø<<<Ø<<ö<<<Ö<<Å‘<<<Å<Ã¥<<<Ã…<<<aa<<<Aa<<<AA") -- tailoring("&oe<<Å“<<<Å’") tailoring("&A<a<B<b<C<D<E<F<G<H<I<J<K<L<M<N<O<P<Q<R<S<T<U<V<W<X<Y<Z<Æ<Ø<Ã…") return collator_obj end --ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ --[[ Symbol Example Description < a < b Identifies a primary (base letter) difference between "a" and "b" << a << ä Signifies a secondary (accent) difference between "a" and "ä" <<< a<<<A Identifies a tertiary difference between "a" and "A" <<<< ã‹<<<<ã‚« Identifies a quaternary difference between "ã‹" and "ã‚«". (New in ICU 53.) ICU permits up to three quaternary relations in a row (except for intervening "=" identity relations). = x = y Signifies no difference between "x" and "y". & &Z Instructs ICU to reset at this letter. These rules will be relative to this letter from here on, but will not affect the position of Z itself. ]]