I have a global picklist with different translations (Translation Workbench). I am changing the language in an email template so that the picklist value gets translated. As far as I know, the only way to dynamically translate the picklist value in an email template is by using the tag apex:outputField, something like:

<apex:outputField value="{!recipient.EmailGreeting__c}"/>

This is working correctly, meaning that I am getting the translation of the pick-list value. In addition, I need to uppercase the EmailGreeting__c value. It needs to change from dear to DEAR. I am doing the following:

{!UPPER(<apex:outputField value="{!recipient.EmailGreeting__c}"/>)}

But I am getting an error message:

Error: Syntax error. Found '<'  

The way I am following to get/capture the content of <apex:outputField value="{!recipient.EmailGreeting__c}"/ does not seem to be supported in salesforce. Is there any other way to dor it?

1 Answer 1


You need to put your formula function inside the merge field for your <apex:outputText>.


<apex:outputField value="{!UPPER(...)}" />

No Joy:

{!UPPER(<apex:outputField value="{!...}" />)}
  • I am coding it as follows: <apex:outputField value="{!UPPER(recipient.EmailGreeting__c)}" />. However, I get an error message: Error: Syntax error. Missing ')' Nov 3, 2017 at 14:07
  • I do not think it will work. Because the apex:outputField does the translation. So the field EmailGreeting__c content can be manipulated after it outputs it. I hope that makes sense. Nov 3, 2017 at 14:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .