We're looking for a person or people to help audit MDN to find places we could speed up. Is this you or someone you know? Check out the RFP: https://mzl.la/2IHcMiE

The lang function determines whether the context node matches the given language and returns boolean true or false.


lang(string )


The language code or localization (language and country) code to be matched.


true if the context node matches the given languages. Otherwise, false.


  • A node's language is determined by its xml:lang attribute. If the current node does not have an xml:lang attribute, then the value of the xml:lang attribute of the nearest ancestor that has an xml:lang attribute will determine the current node's language. If the language cannot be determined (no ancestor has an xml:lang attribute), this function will return false.
  • If the given string does not specify a country code, this function will match nodes of that language with any country code. The converse is not true.

Given this fragment of XML:

<p xml:lang="en">I went up a floor.</p>
<p xml:lang="en-GB">I took the lift.</p>
<p xml:lang="en-US">I rode the elevator.</p>

And this part of an XSL template:

<xsl:value-of select="count(//p[lang('en')])" />
<xsl:value-of select="count(//p[lang('en-GB')])" /> 
<xsl:value-of select="count(//p[lang('en-US')])" />
<xsl:value-of select="count(//p[lang('de')])" />

The output might be:



XPath 1.0 4.3

Gecko support


Document Tags and Contributors

 Contributors to this page: SphinxKnight, Sheppy, Mgjbot, Shoot, Fredchat, Ptak82, Jonnyq
 Last updated by: SphinxKnight,