misc/ and tmpdisk/ map es_ES to LANG_SPA in their Tupfile.lua, so the OS
compiles those sources with a define this build never passed. Their
Spanish branches went untested here while shipping in the es_ES image.
Every other Tupfile.lua here sets C_LANG from the LANG config before
interpolating it; this one, added with the template program, did not. The
gap is invisible to our CI because build.sh reads the rule text and
supplies /D=LANG_* itself, so the rule has never been through tup - which
is what the OS build uses, and where an undefined variable would land in
the compiler command line.
Take the three-branch form from misc/ and tmpdisk/ rather than the shorter
one most programs use: this is the file people copy to start a new program,
so it should not teach them to drop Spanish.