This is a "bug" in the WFFM module, the Sheer UI form does not set a different text for those headings. In a previous version of WFFM which did not include the "Select Existing Form" option I had added this option back in myself so it is possible to override the behaviour and set the "correct" headings.
- Make a copy of
/sitecore/shell/Applications/Modules/Web Forms for Marketers/InsertFormWizard.xml
and place it in /sitecore/shell/Override
folder
- Update the
CodeBeside
attribute of the WizardForm
element to your custom class
- Create a new class as below to override the labels and screen text
using System.Text;
using Sitecore.Data.Items;
using Sitecore.Globalization;
namespace MySite.CMS.Custom
{
public class InsertFormWizard : Sitecore.Forms.Shell.UI.InsertFormWizard
{
protected override void Localize()
{
base.Localize();
// This sets the header and sub-text for the Insert Existing Form screen
this.SelectForm["Header"] = Translate.Text("Select Existing Form");
this.SelectForm["Text"] = Translate.Text("Select an existing form to insert");
}
protected override bool ActivePageChanging(string page, ref string newpage)
{
bool flag = base.ActivePageChanging(page, ref newpage);
if (newpage == "ConfirmationPage" && this.InsertForm.Checked)
{
// This prepends details about the existing form you are selecting
this.ChoicesLiteral.Text = RenderFormSelection() + this.ChoicesLiteral.Text;
}
return flag;
}
private string RenderFormSelection()
{
Item source = ExistingFormSelection();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(this.RenderBeginSection("FORM"));
stringBuilder.Append($"<p>{Translate.Text("Using existing form")}: {source.Paths.FullPath}</p>");
stringBuilder.Append(this.RenderEndSection());
return stringBuilder.ToString();
}
private Item ExistingFormSelection()
{
string queryString = Sitecore.Web.WebUtil.GetQueryString("la");
Language result = Sitecore.Context.ContentLanguage;
if (!string.IsNullOrEmpty(queryString))
Language.TryParse(Sitecore.Web.WebUtil.GetQueryString("la"), out result);
Item source = this.FormsRoot.Database.GetItem(this.multiTree.Selected, result);
return source;
}
}
}
The header of the final translation screen is shared between all of the selection types so it is not possible to change it on a case by case basis. You could change it by adding a Dictionary entry for it though.
Using the above the screen now look like this:


It is also possible to translate all/most of the labels in the labels displayed. As @aseabridge points out, the default text is indeed embedded in a resource file within the Sitecore.WFFM DLL but labels are retrieved via a call to Sitecore.Globalization.Translate.Text()
, which you will see if you follow the calls through DependenciesManager.ResourceManager.Localize()
. The text is retrieved from the resource file and then it tries to locate a translation in the Domain Dictionaries (which uses dictionary fallback) otherwise it returns the default text from the resource file. The Key
of the dictionary item needs to match exactly as it is in the resource file. If the dictionary items do not exist then you can create them yourself and provide the dictionary (in either domain, master or core dictionary since fallback applies), so this makes it possible to translate the labels to a different language if you wish.