This will strip all other attributes, apart from name and locale.  Is that what we want?  Shouldn't we just match and replace the locale attribute itself?

<xsl:template match="setting[@name='label'][@locale='en_US']/@locale">en_AU</xsl:template>

Something like that might work.