![](https://secure.gravatar.com/avatar/3f064216b5088b4646c82e1fc2d58293.jpg?s=120&d=mm&r=g)
Hallo Hans and other ConTeXters, I have started to collect and clean up Czech ConTeXt localization. And I have discovered that Tomas Hudec includeded Czech (non-trivial) sorting rules into texutils.pl (calling czsort.pl from Jan Pazdziora). Unfortunately it was not incorporated into official ConTeXt disribution. Hans, what is your prefereble solution in case of local sorting rules? I know, there is \definesortkey, but this mechanism is insufficient for Czech. I think that calling external Perl sorting routine is a suitable solution. If so, it can be incorporated into current version? Files are attached. Thanks Vit Zyka
![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
Vit Zyka wrote:
Hallo Hans and other ConTeXters,
I have started to collect and clean up Czech ConTeXt localization. And I have discovered that Tomas Hudec includeded Czech (non-trivial) sorting rules into texutils.pl (calling czsort.pl from Jan Pazdziora). Unfortunately it was not incorporated into official ConTeXt disribution.
Hans, what is your prefereble solution in case of local sorting rules? I know, there is \definesortkey, but this mechanism is insufficient for Czech. I think that calling external Perl sorting routine is a suitable solution. If so, it can be incorporated into current version? Files are attached.
in order to do that: - the pm code should move into texutil - we should find a way to hook the switch into texexec now, apart from such an effort, i think we should rethink sorting; - no funny encodings which demands the sorter to be encoding aware - no locale dependencies - readable sorting code -) steps: - write named glyphs to the output: - no longer use direct code in definecommand and defineaccent, i.e. - define the fallbacks as 'definecharacter ones' the last two steps actually come first (since adam l. is quite fluent in the character names and such, i guess that the both of us need to look into that and do that in 'one move'); after that i can rewrite the sort/index code to become aware of named glyphs and languages, and we can then plug in language specific sorting rules [taking care of xml at teh same time] [it's worth considering to drop the non etex code] named glyphs are not so much a problem, but we need to clean up the fallback encoding defs a bit in order to prevent funny expansion \def\literateencodedtokens {% \let\dohandleaccent \keephandleaccent % \let\dohandlecommand \keephandlecommand \let\dohandlecharacter\keephandlecharacter} \def\convertmeaning#1\to % watch the double expansion ! {\bgroup \honorunexpanded %\dontexpandencoding % new \literateencodedtokens % newer \xdef\@@globalexpanded{#1}% \xdef\@@globalexpanded{\@@globalexpanded}% \egroup \convertcommand\@@globalexpanded\to} \protect \enableencoding[texnansi] \setupregister[index][keyexpansion=yes] \starttext \defineactivecharacter * {\eacute} test \index{test \eacute * \'e test} \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
![](https://secure.gravatar.com/avatar/3f064216b5088b4646c82e1fc2d58293.jpg?s=120&d=mm&r=g)
h h extern wrote:
Vit Zyka wrote:
Hallo Hans and other ConTeXters,
I have started to collect and clean up Czech ConTeXt localization. And I have discovered that Tomas Hudec includeded Czech (non-trivial) sorting rules into texutils.pl (calling czsort.pl from Jan Pazdziora). Unfortunately it was not incorporated into official ConTeXt disribution.
Hans, what is your prefereble solution in case of local sorting rules? I know, there is \definesortkey, but this mechanism is insufficient for Czech. I think that calling external Perl sorting routine is a suitable solution. If so, it can be incorporated into current version? Files are attached.
Hallo Hans, thank you for your positive responce. Since I am still a bit confused in the ConTeXt low and high level encoding macros (but a bit less after solving the last week UTF-8 -> IL2 problem - despite of the reason was in my old ConTeXt distr.) I need a bit more details about how to contribute.
in order to do that:
- the pm code should move into texutil - we should find a way to hook the switch into texexec now, apart from such an effort, i think we should rethink sorting; - no funny encodings which demands the sorter to be encoding aware - no locale dependencies - readable sorting code -)
OK. So, each sorting rules will be represented by cmp($a,$b) function? And $a and $b should be glyps, shouldn't they?
steps: - write named glyphs to the output: - no longer use direct code in definecommand and defineaccent, i.e. - define the fallbacks as 'definecharacter ones'
Sorry, output of what? Where are the commands? ???
the last two steps actually come first (since adam l. is quite fluent in the character names and such, i guess that the both of us need to look into that and do that in 'one move'); after that i can rewrite the sort/index code to become aware of named glyphs and languages, and we can then plug in language specific sorting rules [taking care of xml at teh same time]
Great.
[it's worth considering to drop the non etex code]
All right. etex can be everywhere now.
named glyphs are not so much a problem, but we need to clean up the fallback encoding defs a bit in order to prevent funny expansion
I totaly do not known what the code bellow illustrates. So, what to do? Vit Zyka
\def\literateencodedtokens {% \let\dohandleaccent \keephandleaccent % \let\dohandlecommand \keephandlecommand \let\dohandlecharacter\keephandlecharacter}
\def\convertmeaning#1\to % watch the double expansion ! {\bgroup \honorunexpanded %\dontexpandencoding % new \literateencodedtokens % newer \xdef\@@globalexpanded{#1}% \xdef\@@globalexpanded{\@@globalexpanded}% \egroup \convertcommand\@@globalexpanded\to}
\protect
\enableencoding[texnansi] \setupregister[index][keyexpansion=yes]
\starttext
\defineactivecharacter * {\eacute} test \index{test \eacute * \'e test}
\stoptext
participants (2)
-
h h extern
-
Vit Zyka