[..]

>> So, I think, that the correct way to solve this problem is to
>> set the values of \lccode, \uccode, \sfcode and \mathcode,
>> in a macros which switches to a language (\selectlanguage
>> in Babel).

>> Are there some ready means to preserve the `language environment'
>> before switching to another language and to restore it after
>> changing back (or to some third language)?
>> Is it a normal practice to `tune' \lccode, \uccode, \sfcode
>> and \mathcode values in a language-switching mechanism?

One idea under consideration for e-TeX V2 is the option to save and
restore an entire set of register values (e.g. the current set of
lccodes, etc); this may prove useful in solutions to this question.

Philip Taylor,
Technical Director, e-TeX/NTS projects.