A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

Giang Nguyen
Feb 23, 2021
  3267
(1 votes)

Localize Forms post-submission actors

The "Send email after submission" actor for Episerver Forms are not marked as LanguageSpecific. That's a real struggle for editors when they want to customize the email response for each language version.
I'm not sure about the background why this is not translateable by default. 

However, there are a few workarounds for this trouble.

Use the "Edit propery" function in CMS Admin

Pros:

  • Easy ans effortless 

Cons:

  • Not safe
  • The setting might revert back to default after IIS recycle, nuget update or code deployment
  • The translated data will be lost (permanently!) if the property reverts back to default

Programmatically update the property attribute

We can create an initialization module that executes after Forms finishes its init tasks.

    [InitializableModule]
    [ModuleDependency(typeof(EPiServer.Forms.EditView.InitializationModule))] // Should initialize AFTER Epi Forms
    public class FormsLanguageSpecific : IInitializableModule
    {
        Injected<IContentTypeRepository> _contentTypeRepository;
        Injected<IPropertyDefinitionRepository> _propertyDefinitionRepository;

        public void Initialize(InitializationEngine context)
        {
            var containerTypeList = typeof(IFormContainerBlock).GetDerivedTypes();
            foreach (var containerType in containerTypeList)
            {
                var formContainerContentType = _contentTypeRepository.Service.Load(containerType);
                if (formContainerContentType == null)
                {
                    continue;
                }

                var actors = formContainerContentType.PropertyDefinitions
                    .Where(p => p.Type!=null && p.Type.TypeName != null 
                        && p.Type.TypeName.Equals("EPiServer.Forms.EditView.SpecializedProperties.PropertyEmailTemplateActorList"));
                foreach (var actor in actors) // Iterates through all actors (incl. custom actors)
                {
                    var clone = actor.CreateWritableClone();
                    clone.LanguageSpecific = true;
                    _propertyDefinitionRepository.Service.Save(clone);
                }
            }
        }
    }

Pros:

  • Don't need to worry about many msitake when using the Admin UI
  • It permanently changes the property (almost)
  • Personally, I haven't seen any issue after updating/deploying

Cons:

  • The site will fail to start in case of internal Forms code refactors
Feb 23, 2021

Comments

Kane Made It
Kane Made It Feb 23, 2021 05:01 AM

Hi Giang, if the property value is changed after deployment/IIS reset, should we report it to internal team who curently in charge of Form? Lately I've encountered issue with edit mode preview with fixed DOM and I reminded the team also.

Giang Nguyen
Giang Nguyen Feb 23, 2021 06:28 AM

Hi Kane, the changes of properties I mentioned is after upgrading nuget packages or change the assembly version. Any of such change would trigger a data type synchronization. Looks like a by-design behavior when property attributes revert back to default.

Back the this post, I have no knowledge about the background of why post submission actors are not language specific. So, this would help in multilingual context :)

Please login to comment.
Latest blogs
Looking back at Optimizely in 2025

Explore Optimizely's architectural shift in 2025, which removed coordination cost through a unified execution loop. Learn how agentic Opal AI and...

Andy Blyth | Dec 17, 2025 |

Cleaning Up Content Graph Webhooks in PaaS CMS: Scheduled Job

The Problem Bit of a niche issue, but we are building a headless solution where the presentation layer is hosted on Netlify, when in a regular...

Minesh Shah (Netcel) | Dec 17, 2025

A day in the life of an Optimizely OMVP - OptiGraphExtensions v2.0: Enhanced Search Control with Language Support and Synonym Slots

Supercharge your Optimizely Graph search experience with powerful new features for multilingual sites and fine-grained search tuning. As search...

Graham Carr | Dec 16, 2025

A day in the life of an Optimizely OMVP - Optimizely Opal: Specialized Agents, Workflows, and Tools Explained

The AI landscape in digital experience platforms has shifted dramatically. At Opticon 2025, Optimizely unveiled the next evolution of Optimizely Op...

Graham Carr | Dec 16, 2025