Hello everybody, I am interested in Unicode-capable TeX engines, and as such felt that after fontspec and unicode-math, polyglossia would deserve a rewrite for expl3. polyglossia currently uses etoolbox to provide features much similar to what is offered by the LaTeX3 packages, notably a lot of keyval-like features. I found benefits in the nice syntax offered by l3keys, and the \prg_case_str function for example. You may find a Git repository at http://github.com/remyoudompheng/polyglossia I am looking for help in testing this, hoping that you will like it, and I have also a question: for some reason, in polyglossia we need to (un)capitalize words for use in csnames. I think I can produce somthing like this in LaTeX 3: \def\art{abc} \def\func#1{\tl_to_uppercase:n{\tl_head:n{#1}}{\tl_tail:n #1}} \def\frou#1{\exp_args:Nf\func#1} \frou\art produces Abc as expected. The TeX code is polyglossia is like this: \def\xpg@uppercasefirst#1{\expandafter\xpg@@uppercasefirst #1} \def\xpg@@uppercasefirst#1{% \if a#1A\else \if b#1B\else \if c#1C\else \if d#1D\else ... \fi\fi\fi\fi I have been trying to replace it by something like \cs_new:Npn \polyg_uppercase_first:x{\tl_to_uppercase:n{\tl_head:n{#1}{\tl_tail:n #1}} or some combination using \exp_args but the result was never equivalent, since in polyglossia the input may be a complicated macro and the output will be surrounded by \csname..\endcsname How should I do that ? Regards, Rémy Oudompheng.