Я вижу три способа сделать это, какой из них лучше (или если какой-либо из них является альтернативой) зависит от того, когда и как вам нужен окончательный XML:
Построить xsl программно
Создайте xsl, используя, например, XmlDocument - тогда вы можете использовать обычные строковые ресурсы для заполнения меток и, возможно, использовать настройки культуры вашего приложения.
Встроить перевод в xsl
Используйте <xsl:param>
, чтобы указать преобразованию, какой язык использовать, затем поместите <xsl:choose>
в каждую строку:
<xsl:choose>
<xsl:when test="$language='en'">Contact Details</xsl:when>
<xsl:when test="$language='sv'">Kontaktuppgifter</xsl:when>
<xsl:otherwise>Unknown language <xsl:value-of select="$language"/></xsl:otherwise>
</xsl:choose>
Посмотрите переводы как часть преобразования
Поместите переводы в собственные XML-документы translation.xml
:
<strings>
<string language="en" key="ContactDetails">Contact Details</string>
<string language="sv" key="ContactDetails">Kontaktuppgifter</string>
[...]
</strings>
Затем загрузите его содержимое с помощью:
<xsl:variable name="strings" select="document('translation.xml')/strings"/>
... и получить к ним доступ с помощью:
<xsl:value-of select="$strings/string[@key='ContactDetails' and @language=$language]"/>