Hi danke für die hilfe funktioniert einwandfrei.
Hab noch die target_lang angepasst. als variable muss man die dann nicht so oft durchreichen. die if-anweisung hatte ich wegen der for-each. da ich so oft durchgelaufen bin wie übersetzungen für das deutsche wort vorhanden waren und so das deutsche wort beim vergleich zu oft ausgegeben habe. darum der vergleich ob ich am ende des knotens bin.
so hier noch der fertige code. danke noch mal.
gruss steffen
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="target_lang" select="'en'"/>
<xsl:variable name="dict" select="document('ProgalDict.tmx')"/>
<xsl:variable name="source_lang" select="$dict/tmx/header/@srclang"/>
<xsl:template match="/">
<xsl:apply-templates select="*"/>
</xsl:template>
<xsl:template match="*">
xsl:copy
<xsl:for-each select="@*">
<xsl:attribute name="{name()}">
<xsl:call-template name="trans">
<xsl:with-param name="thisWord" select="."/>
</xsl:call-template>
</xsl:attribute>
</xsl:for-each>
<xsl:apply-templates select="*"/>
</xsl:copy>
</xsl:template>
<xsl:template name="trans">
<xsl:param name="thisWord"/>
xsl:choose
<xsl:when test="$dict/tmx/body/tu/tuv[@xml:lang=$source_lang]/seg=$thisWord">
<xsl:value-of select="$dict/tmx/body/tu[tuv[@xml:lang=$source_lang]/seg=$thisWord]/tuv[@xml:lang= $target_lang]/seg"/>
</xsl:when>
xsl:otherwise
<xsl:value-of select="$thisWord"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>