Hello,

I have a problem with the i18n block (cocoon 2.1.11 release).

It seems that the results of a <i18n:text/> translation cannot be stored in a <xsl:variable/>.

What I'm trying to do is to show an error message with localizable parameters.

Passed XML:

<paramText param0="DATE">ERROR_FILTER</paramText>

messages.xml:

<message key="ERROR_FILTER">Error while evaluating filter, please check the syntax of {0}.</message>
<message key="DATE">Date Scheduled</message>

So my XSL looks something like this:

<xsl:template match="paramText">
    <xsl:variable name="param0">
        <i18n:text key="[EMAIL PROTECTED]"/>
    </xsl:variable>
    <span>
        <i18n:translate>
            <i18n:text key="{text()}" />
                <i18n:param>
                    <xsl:value-of select="$param0" />
                </i18n:param>
            </i18n:text>
        </i18n:translate>
    </span>
</xsl:template>

But in the output $param0 is not shown (since it's empty). If I change the variable to:

<xsl:variable name="param0">
    <i18n:text>
        <xsl:value-of select="@param0"/>
    </i18n:text>
</xsl:variable>

it contains the untranslated text (value of @param0 -> DATE).

If I change the <i18n:translate/> block to:

<i18n:translate>
    <i18n:text key="{text()}" />
        <i18n:param>
            <i18n:text key="[EMAIL PROTECTED]"/>
        </i18n:param>
    </i18n:translate>
</i18n:translate>

the output will _only_ consist of @param0 ("Date Scheduled") and not the message text.

So how would I go about implementing the error display?

I wouldn't know of any way of getting access to the i18n message resources from within Java either, otherwise I would do the translation
in my code.

Thanks,
Rainer

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to