I wish to keep the language in a command
\newcommand{\testlang}{english}
\begin{otherlanguage}{\testlang}
...
\end{otherlangauge}
However, \testlang is not expanded, and i get the error
! Package babel Error: You haven't defined the language testlang yet.
I've seen many tricks related to macro expansions, but I don't understand them well enough to know how to apply them in this scenario.
otherlanguageshouldn't try to expand this by default? – Mikael Öhman Apr 05 '11 at 13:40\edef. If it contains things which can't be expanded but must be executed, like assignments, than it will break inside\edef. This is very similar to the fragile vs. robust issue in sectioning commands. – Martin Scharrer Apr 05 '11 at 13:50