summaryrefslogtreecommitdiff
path: root/Build/source/utils/xindy/make-rules/alphabets/test1/test1.pl
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/xindy/make-rules/alphabets/test1/test1.pl')
-rwxr-xr-xBuild/source/utils/xindy/make-rules/alphabets/test1/test1.pl166
1 files changed, 166 insertions, 0 deletions
diff --git a/Build/source/utils/xindy/make-rules/alphabets/test1/test1.pl b/Build/source/utils/xindy/make-rules/alphabets/test1/test1.pl
new file mode 100755
index 00000000000..cf74233784b
--- /dev/null
+++ b/Build/source/utils/xindy/make-rules/alphabets/test1/test1.pl
@@ -0,0 +1,166 @@
+#!/usr/bin/perl
+
+# a string describing the language (to be exact, the sorting order)
+$language = "Test1";
+$prefix = "xx";
+$script = "latin";
+
+# Technically speaking, $alphabet is (a reference to) an array of arrays of
+# arrays. Sounds complicated? Don't worry! Explanation follows:
+
+# Every line describes one letter of the alphabet (in all its variants).
+# The first string is the name of the letter; this appears in the heading of
+# letter groups (when defined with the proper markup). Currently the maximum
+# number of letters is limited to 95. A future expansion up to 223 letters
+# should be no problem.
+
+# Next follows a sequence of arrays, delimited by commas. Each of these arrays
+# describes one variant of the letter with different diacritical marks
+# (accents). The order of those describes the sorting order if two words
+# appear which differ only in the diacritical variant of this letter.
+# Currently the maximum supported number of diacritical variants of one letter
+# is 93.
+
+# Each of these arrays contains first the lowercase variant of the letter,
+# followed by uppercase variant(s). You might wonder: How can there be other
+# than one uppercase variant? Consider the letter combination `ch': Uppercase
+# variants here are: `Ch' and `CH'. Also, in some character sets there might
+# not exist an uppercase variant of a letter, e.g. the letter `ÿ' in the
+# ISO-8859-1 character set. In this case we just leave it out.
+
+# The sum of the number of uppercase and lowercase variants of one diacritical
+# version of a letter should be 10 or less. (In case of `ch' it is 3:
+# `ch', `Ch' and `CH')
+
+# There can be empty arrays [] which are called slots. They are used for
+# mixing alphabets of different languages.
+
+# In order to merge several letters into on letter group, give them the same
+# letter-group name. (see 'c' and 'ch').
+
+$alphabet = [
+['A', ['a','A'], ['á','Á']],
+ [], # a with breve (romanian)
+ [], # a with circumflex (romanian)
+ [], # a with ogonek (polish)
+['B', ['b','B']],
+['C', ['c','C']],
+['C', ['ch','Ch','CH']],
+ [], # cs (hungarian)
+ [], # c with caron (many)
+ [], # c with acute (croatian, lower sorbian, polish)
+ [], # c with circumflex (esperanto)
+ [], # c with cedilla (albanian, kurdish, turkish)
+['D', ['d','D']],
+ [], # dh (albanian)
+ [], # d+z with caron (croatian)
+ [], # d+z with acute (upper sorbian)
+ [], # d with caron (slovak/large)
+ [], # d with stroke (croatian)
+ [], # eth (icelandic)
+['E', ['e','E'], ['é','É']],
+ [], # e with caron (lower/upper sorbian)
+ [], # e with circumflex (kurdish)
+ [], # e with diaeresis (albanian)
+ [], # e with ogonek (polish)
+['F', ['f','F']],
+['G', ['g','G']],
+ [], # gj (albanian)
+ [], # g with circumflex (esperanto)
+ [], # g with breve (turkish)
+['H', ['h','H']],
+ [], # h with circumflex (esperanto)
+ [], # ch (many)
+ [], # dotless i (turkish)
+['I', ['i','I'], ['í','Í']],
+ [], # i with circumflex (kurdish, romanian)
+['J', ['j','J']],
+ [], # j with circumflex (esperanto)
+['K', ['k','K']],
+ [], # l with stroke (lower/upper sorbian)
+['L', ['l','L']],
+ [], # lj (croatian)
+['Ll', ['ll','Ll','LL']],
+ [], # l with stroke (polish)
+ [], # l with caron (slovak/large)
+['M', ['m','M']],
+['N', ['n','N']],
+ [], # nj (albanian, croatian)
+ [], # ny (hungarian)
+['Ñ', ['ñ','Ñ']],
+ [], # n with acute (lower/upper sorbian, polish)
+ [], # n with tilde (spanish/modern, spanish/traditional)
+['O', ['o','O'], ['ó','Ó']],
+ [], # o with acute (polish, upper sorbian)
+ [], # o with diaeresis (hungarian, turkish)
+['P', ['p','P']],
+['Q', ['q','Q']],
+['R', ['r','R']],
+ [], # rr (albanian)
+ [], # r with caron (czech, slovak/large, upper sorbian)
+ [], # r with acute (lower sorbian)
+['S', ['s','S']],
+ [], # sh (albanian)
+ [], # sz (hungarian)
+ [], # s with caron (many)
+ [], # s with acute (lower sorbian, polish)
+ [], # s with circumflex (esperanto)
+ [], # s with comma below (romanian)
+ [], # s with cedilla (kurdish, turkish)
+['T', ['t','T']],
+ [], # th (albanian)
+ [], # t with caron (slovak/large)
+ [], # t with comma below (romanian)
+ [], # c with acute (upper sorbian)
+['U', ['u','U'], [], ['ú','Ú'], ['ü','Ü']],
+ [], # u with breve (esperanto)
+ [], # u with circumflex (kurdish)
+ [], # u with diaeresis (hungarian, turkish)
+['V', ['v','V']],
+['W', ['w','W']],
+['X', ['x','X']],
+ [], # xh (albanian)
+['Y', ['y','Y']],
+['Z', ['z','Z']],
+ [], # zh (albanian)
+ [], # zs (hungarian)
+ [], # z with caron (many)
+ [], # z with acute (lower sorbian, polish)
+ [], # z with dot above (polish)
+ [], # thorn (icelandic)
+ [], # ligature ae (danish, icelandic, norwegian)
+ [], # o with stroke (danish, norwegian)
+ [], # a with ring above (danish, norwegian, swedish)
+ [], # a with diaeresis (finnish, swedish)
+ [] # o with diaeresis (finnish, swedish)
+];
+
+# The next should be pretty easy:
+# It means: 'ß' is a ligature which is sorted like the letter sequence `ss'
+# but in case two words differs only there, the word with 'ß' comes after the
+# one with 'ss' (e.g. Masse, Maße.)
+
+# The same with Ä/ä, only this time with uppercase/lowercase variants.
+# The order of the lines in $ligatures does not matter.
+
+$ligatures = [
+[['ß'], 'after', [['s','s']]],
+[['Ä','ä'], 'before', [['A','e'], ['a','e']]],
+[['Ö','ö'], 'before', [['O','e'], ['o','e']]]
+];
+
+# `special' are those characters which are normally ignored in the sorting
+# process, but e.g. to sort the words "coop" and "co-op" we must also define
+# an order here.
+
+@special = ('?', '!', '.', 'letters', '-', '\'', '\\/');
+
+# first lower or upper case?
+
+$sortcase = "Aa";
+#$sortcase = "aA";
+
+#@letter_group_names = ('A','B','C','Ch','D','E','F','G','H','I','J','K',
+#'L','Ll','M','N','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z');
+
+do 'make-rules.pl';