In a datatable a value needs to be translated when a certain condition applies (link enabled):
<h:outputLink disabled="#{pluginSummary.linkEnabled}" target="_blank" value="http://www.nessus.org/plugins/index.php">
<c:choose>
<c:when test="#{not pluginSummary.isLinkEnabled()}" >
<h:outputText value="#{pluginSummary.pluginid}"/>
</c:when>
<c:otherwise>
<h:outputText value="#{texts[pluginSummary.pluginid]}"/>
</c:otherwise>
</c:choose>
<f:param name="id" value="#{pluginSummary.pluginid}"/>
<f:param name="view" value="single"/>
</h:outputLink>
But strangely only the first condition applies and there is never a translation. To debug I also added a <h:outputText value="#{pluginSummary.isLinkEnabled()}/>
and there I see the different true and false entries, but I the text gets never translated.
Does anybody know, if c:choose works in a datatable? What are my alternatives?