Lukáš Procházka
31. Dezember 2015 um 11:07
Hello,

how to detect which language set by \mainlanguage[xy] is active?
How to detect it by a) ConTeXt and b) Lua?

Something like:

\mainlanguage[cz]

\ifmainlanguage{cz}
  Do someting
\fi

and

if context.languages.active() == "cz" then
  -- Do somthing
end
You can use the modes mechanism for this because you can use **<TAG> to check for the main language (set by \mainlanguage) and *<TAG> for the current language (set by \language).

\mainlanguage[cs]
%\language[en]

\starttext

\doifelsemode{**cs}{The main language is Czech.}{The main language is “\currentmainlanguage”.}

\startluacode
if tex.modes["**cs"] then
    context("The main language is Czech.")
else
    context("The main language is “\\currentmainlanguage”.")
end
\stopluacode

\blank

\doifelsemode{*cs}{The current language is Czech.}{The current language is “\currentlanguage”.}

\startluacode
if tex.modes["*cs"] then
    context("The current language is Czech.")
else
    context("The current language is “\\currentlanguage”.")
end
\stopluacode

\stoptext

Wolfgang