<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
		xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml"
		encoding="utf-8"
		doctype-system="locations.dtd"
		indent="yes"
		/>

    <xsl:template mode="get_context" match="*">
	<xsl:value-of select="." />
	<xsl:if test="not(position()=last())">, </xsl:if>
    </xsl:template>

    <xsl:template mode="get_local_names" match="*">
	The local name in '<xsl:value-of select="@xml:lang" />' is <xsl:value-of select="." /><xsl:text>.</xsl:text>
    </xsl:template>

    <xsl:template match="_name">
	<xsl:if test="../name[@xml:lang]">
	    <xsl:comment> Translators: <xsl:value-of select="." /> is the anglicized name. <xsl:apply-templates mode="get_local_names" select="../name[@xml:lang]"/><xsl:text> </xsl:text>
	    </xsl:comment>
	    <xsl:text>&#10;</xsl:text>
	</xsl:if>
	<_name>
	    <xsl:variable name="context">
		<xsl:apply-templates mode="get_context" select="../ancestor::*[not(self::region)]/child::_name">
		    <xsl:sort order="descending"/>
		</xsl:apply-templates>
	    </xsl:variable>
	    <xsl:if test="$context != ''">
		<xsl:attribute name="msgctxt"><xsl:value-of select="$context"/></xsl:attribute>
	    </xsl:if>
	    <xsl:apply-templates/>
	</_name>
    </xsl:template>

    <xsl:template match="name[@xml:lang]" />

    <xsl:template match="@*|node()">
	<xsl:copy>
	    <xsl:apply-templates select="@*|node()"/>
	</xsl:copy>
    </xsl:template>

</xsl:stylesheet>