the scope of a variable binding is its containing element so
in your case your variable definitions ae local to the
xsl:if
you want
<xsl:variable name="stadt" select="city[$lang=2]"/>
or some other construction that leaves the variable in scope at
the point it is used.
David
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list