У меня есть класс Apex, который устанавливает тему и текст электронного письма с помощью пользовательских меток. Новое требование состоит в том, чтобы установить этот текст для языка, выбранного с помощью поля раскрывающегося списка в объекте Quote. Например, если в Quote используется французский язык, текст электронной почты должен отображаться на французском языке независимо от местоположения пользователя, создавшего электронное письмо.

newEnvelope.dsfs__DocuSign_Email_Subject__c = 
System.Label.AG_Docusign_Email_Subject + ' ' + Account.AccountName__c + ' ' + System.Label.AG_Quote + quoteName.Name; 
newEnvelope.dsfs__DocuSign_Email_Message__c = System.Label.AG_Docusign_Email_Message;

Есть ли способ динамически выбрать язык метки или любой другой способ реализовать эту функциональность?

1
Nishi 6 Сен 2019 в 09:18

1 ответ

Метки автоматически выбираются на выбранном языке контекстного пользователя. Это язык пользователя, вызывающего создание электронного письма, а не получателя электронного письма. Вы не можете напрямую запрашивать метки на выбранном языке локали.

Однако для этого вы можете использовать шаблоны электронной почты и настраиваемое поле языка в объекте получателя. См. https://success.salesforce.com/answers?id=90630000000gyjTAAQ для обсуждения. и пример. Лично мне не нравится подход с использованием подобных меток, поскольку вы должны комбинировать их вокруг заменяемых значений, а структура зависит от языка.

Наш подход заключается в том, чтобы иметь отдельные шаблоны электронной почты для каждого языка, где шаблоны имеют общее корневое имя с суффиксом варианта языка, поскольку шаблоны поддерживают слияние. Конкретный шаблон выбирается на основе пользовательского языкового поля получателя (контакта).

3
Phil W 6 Сен 2019 в 09:32