>> I would be more than happy if you would be willing to change Babel in >> such a way that almost none of what's currently in hyphen.cfg would >> need to stay in hyph-utf8. At least the duplication of code should be >> gone. >> > Agreed. Please let me know if (and how) I can help.
I'll explain the changes. As I've said the behaviour of hyphen.cfg doesn't change, but it provides some hooks. This means by default it reads language.dat exactly as before, creates languages named \l@<language> as before and the stuff in switch.def is also preloaded. However, it provides the following hooks: everylanguage, loadpatters and loadexceptions. If the engine is luatex, luababel.def is loaded, which sets these hooks so that it behaves (I hope) like luatex-hyphen.cfg. Another hook is loadkernel. Previously, switch.def was copied into hyphen.cfg, but now is just \input'ed (and therefore hyphen.cfg is smaller). By redefining this hook you can omit it or replace it by another file, but luababel.def doesn't use it. Also, babel now can use encoding-dependent exceptions in a encoding independent way, thank to a new \babelhyphenation (there are a few adjustements to be done, but I'm finishing them). This is much like \hyphenation, but it reads the words using the current input encoding and stores them in its LICR representation; then, \hyphenation is used when the language and its font encoding have been selected (so that the LICR is mapped to the right character point). The fact babel now honours the :ENC suffix (formerly it didn't, or more exactly the font encoding when the language was selected was a wrong one), may have implications on the languages listed in language.dat. Afaik, this feature as never used, but now we can take advantage of it. Javier
