Localization

Translate surveys, emails, reports, and other content from Medallia Setup

Medallia Experience Cloud supports multiple languages for invitations, surveys, reports, and customer comments. On-screen text is in English by default, but you can translate the text into as many languages as your company needs.

Deciding who owns the translation

Medallia recommends that you encourage the company to own the translation of content. This enables the company to more closely manage the speed and quality of the translations they need. If they have managed other translation projects, they might already have the right staff in place, or a preferred vendor with whom they have worked previously. If a company wants a vendor recommendation, see Translation vendors. With this arrangement, Medallia is responsible for exporting the content to be translated, giving it to the company for translation, and then uploading the translated content back to the company's Experience Cloud instance.

If you arrange for Medallia to own the translation, be sure to come to agreement on the cost and amount of time to complete the project. Work closely with your Medallia expert when you own the translation project. Also, be sure to use the Play Translator option in the User Settings menu to verify that your work appears as expected.

The Play Translator option is in the User Settings menu.

If you are working with a translation vendor, consider using a sandbox to test uploads of the vendor's translation file. When their work is complete, you can then upload the final revision to the company's live instance.

Configuring company translation settings

Configure the settings that affect every translation project for a company. If Experience Cloud performance is slow when attempting to download a translations file, revisit these settings.

  1. Open the Company > Profile > Company Settings screen.
  2. If you want to translate units and unit groups, turn on the Enable Translation of Units and Unit Groups property.
    Warning: This functionality can slow Experience Cloud performance. Leave this property unchecked unless the translation of Units and Unit Groups is necessary.
  3. If your browser has timed out when trying to export a translations file, turn on the Send the Translation Excel Report via E-mail instead of as a Download property to receive the file in email instead of as a download.
  4. If translation-report generation time is slow, turn on the Disable Rich Text Formatting in Translation Excel Download property to turn off the use of rich text formatting in the translations Excel download.
  5. Click Save.

Configuring languages and locales

The Experience Cloud localization process treats languages and locales as separate objects that work together. Each language includes information encoded in Experience Cloud to display information appropriately for that language. Locales define how the language is applied for the purpose of localization. You define a locale for each translation you need, and in that process you choose which language applies to that locale. Each locale uses only one language, and each language can be used by only one locale.

It is likely that multiple markets for your account share the same language (such as Spain and Mexico, or France and Switzerland). Consider using the same locale for these markets, since a locale is your dictionary of translations for a specific language. The benefit is to limit the number of locales displayed in the Experience Cloud. A drawback is the level of coordination and agreement needed by countries sharing the same locales. Even if the two markets have different Q-fields, E-fields, and Dashboards, there are still common Experience Cloud labels that are shared in the same locale translation.

Some companies might need two translations of the same language due to a need to maintain legacy content. Take, for example, an existing French translation and a new translation needed for French (CHAM). You still need a locale for each translation. If you create them as peers (at the same level) on the Locales screen, both locales will need to be translated from English, the parent locale. If you want to leverage an existing translation of French for your French (CHAM) locale, create the French (CHAM) locale as a child locale of French. You could then keep the existing French translations that are still applicable, and change only those strings that need to be updated for the new translation. Note, however, that even in this scenario the French (CHAM) locale needs its own language to maintain the 1-to-1 relationship between languages and locales.

Warning: Languages for surveys and the reporting application are configured on the Reporting > Localization > Languages screen. Languages for invitations are configured on the Feedback > Surveying > Inviting > Language Prefs. screen.
On the Reporting > Localization > Languages screen, ensure that you have a language for each locale needing a translation. If you need to create a new language, complete the following steps:
  1. Click New.
  2. Enter a Name for the language, which will be referenced by a locale, and is shown to users in the Language dropdown of the reporting application. The Name you enter is shown to users in the Language dropdown.
  3. Select a PreferredCharset, usually UTF-8.
  4. Leave the StateACTIVE, and then click Save.
On the Reporting > Localization > Locales screen, create a locale to translate:
  1. Click New.
  2. Enter a descriptive Label for the locale. For example, French (Canada).
  3. If you want users to see the locale label instead of the language name in the Language dropdown of the reporting application, turn on the Use label name property.
  4. Choose the Language you created previously.
  5. If you need to localize the reporting application, turn on the UseForReporting property.
  6. If you need to localize surveys, turn on the UseForSurveys property.
  7. Optionally, set a Condition for using the locale.

    For example, if you have a multi-language program you might want to enable German translations only for your German market. In that case, set the Condition of your German locale to an e-field that identifies only surveys from that market, such as e_market = Germany).

    Note: You cannot use multi-value fields to condition locales.
  8. Click Save.
  9. Check the Confirm box, and then click Activate this locale.
Note: All users can access all locales activated for reporting, even if their specific program fields are not translated in those locales. However, you can set a default reporting language for each user by setting the Language system field as part of your user AutoImporter.
If you are translating Invitation emails:
  1. Create the languages to use for invitations, reminders, and auto-reply emails, as described in Language preferences.
  2. Ensure that your email template is prepared for multiple languages, as described in Templates.

Configuring Unit and Group data fields for translation

If you want to translate Unit or Group data fields, they must be configured in Company > Units > Group Data Fields to use the Translatable Text Alternative set. For example:

Unit and group data fields use the Translatable Text alternative set.

Note: Translations for Unit and Group data fields do not apply to email templates.

Translating strings manually

Medallia encourages you to use the export/import method of translating content. However, if you need to make only a few minor changes, you can do so manually on the Translations screen.

  1. In the English group, open each section and check the To Be Translated box of the items you want to translate.

    For example, if you want to translate the Timeperiod field of the Control Panel, open the Common Reporting 1 section, and check To Be Translated next to Timeperiod. Use the To Be Translated box to identify items for translation.

  2. Click Save Now, and then click Return to main screen.
  3. In the appropriate locale group, click the section containing the string you need to translate.

    For example, if you want to translate the Timeperiod field to French, click the Common Reporting 1 section in the French group. Click Common Reporting to set localization for the Timeperiod field.

  4. Locate the string you want to translate.
  5. In the empty box next to the English string, enter your translated string. For example: Enter translated text for the string you want translated.
  6. When you are done with your manual translations, click Save Now, and then click Return to main screen.

Translating in bulk with a translation file

At the top of the main Translation page, click Download Items to translate to export a spreadsheet (XLSX file) that includes all items marked for translation. Use this file to collect translated content for each locale. When using this method, all survey text is included in the file, so you do not need to check the To be Translated boxes in the English group for those items. For all other strings, such as those used in reporting, you must check the To be Translated box in the English group prior to exporting the strings.

Warning: Do not modify the first 5 columns of the spreadsheet for any reason. They are used to identify translation strings upon re-import of the file. If you change these columns the import will fail.

If you want to modify or delete other columns or rows, you must first unprotect the spreadsheet. In Excel, open the Review tab of the ribbon and then click Unprotect Sheet.

Spreadsheet with localization strings

After the first 5 identifying columns is a column for English, followed by a column for each non-English locale. Enter translated text in these columns.

Each row in the spreadsheet represents something to translate, with items grouped by their section (for example, Survey and Questions strings are grouped together). Each translatable item is likely to have multiple strings for translation, and therefore multiple rows in the spreadsheet. For example, each alternative in an Alternative set has strings for In report, Short form, Description, In survey, and In mobile survey. The Short form, Description, and In mobile survey rows are formulas. Enter translations for the In survey row, and they will be copied to the In mobile survey row. Formulas are grayed-out by default.

Default text used in surveys (such as Next, Back, Opt-out, Progress bar and so on) are added to the file automatically. There are several dozen strings of text that are shared across all surveys.

Do not translate text highlighted in red. This includes HTML tags, variables, and other system tags that should be left as-is for all locales. For example:

Do not translate items in red text.

Translatable alternative sets appear a single time in the spreadsheet, regardless of how many questions use them.

After you have entered translations into the spreadsheet, click Choose file at the top of the main Translations screen to select and upload the file.

Warning: Only users with the Setup Translations including Excel Import capability can import translation files. Assign that capability on the Company > Users > Roles > Roles screen. For more information, see Roles.

You do not need to upload a completed file. As long as the first 5 columns remain untouched, you can remove locale columns or leave empty cells in the spreadsheet. Experience Cloud processes the remaining translated content. Empty cells do not overwrite previously-translated strings. However, if you want to overwrite content with an empty value, do so by entering <<DELETE-TRANSLATION>> in the cell for that string.

After Medallia Experience Cloud processes the file, a Translations Excel Upload Preview screen shows what items have been added, removed, changed, or deleted. Expand and collapse each section using the arrows next to the section name. Text currently in Experience Cloud appears before the arrow, while text being imported appears after the arrow. For example, see the blue highlighted cell in the following image:

The Translations Excel Upload Preview screen shows what items have been added, removed, changed, or deleted.

Tip: When uploading an HTML element, make sure it is formatted correctly, otherwise it may result in issues when changing the default language. Some common issues are: not including enough dividers (|), or options for the labels of rating scale questions or not all the ratings are provided for each 11 labels; using / instead of | to separate the rating labels; not all fields are filled out.

Translating labels in custom reports

While text in custom reports cannot be translated through the Translations screens, you can translate labels used in custom reports. To do so for any specific label, on the Reporting > Localization > AA2 Translations screen create a new translation, then on your custom report change a text attribute to use a key identifier that has an associated name (label) to the translation you created. After the translation process is complete, your custom report uses the translated label appropriate for the viewer's language.

Note: Report labels are only translated when viewing them on Experience Cloud. If you export the same report, for example to Excel, the report labels are displayed in the default language in the exported file.

For example, you could create an AA2 translation for the Abandonment Rate field, as shown in the following image:

An AA2 translation for the Abandonment Rate field.

You could then use that Key in your custom report, replacing the value of the text attribute with i18n:key. For example:

<field-split fields="r__abandonment_rate" text="i18n:abandonmentrate"> 
		<aggregate operation="AVERAGE"/>  
		<format decimals="1"/> 
</field-split> 

The Name property (Abandonment Rate in this example), replaces the element's label when the report is displayed. After translation processing, the custom report displays that label in the appropriate languages.

Translatable elements in custom modules

You can change the text attribute of the following elements for translation:

  • aggregate-field
  • attrsrated-split
  • benchmark-intersection-split
  • benchmark-previous-columns
  • field-split
  • goal thresholds-text
  • heading
  • heading-blank
  • js-heading
  • linguistic-connection-split
  • question-dropdown
  • question-dropdown-split
  • questions-dropdown-split
  • sentiment-bubble-split
  • sentiment-split
  • sentiment-tag-split
  • social-media-source-split
  • socialmedia-rivals-split
  • socialmedia-source-split
  • socialmedia-split
  • socialmedia-unit-split
  • split
  • tag-pool-split
  • timeperiod-dropdown-split
  • timeperiod-split
  • timeperiod-year-ago-split
  • topic-split
  • unit-dropdown-split
  • unit-plugin-split
  • unit-split
  • unitdata
  • unitgroup-member
  • unitgroup-member-split
  • unitgroup-parent
  • unitgroup-split
  • units-in-unitgroup-split
  • word-split

Translating labels in custom modules

  1. On the Reporting > Localization > AA2 Translations screen, click New.
  2. Enter a unique Key, which you will reference in the custom report. For example, abandonmentrate
  3. Enter a Name, which is displayed as the label in the custom report. For example, Abandonment Rate
  4. Optionally, for the TranslationExplanation property enter information to help the person understand how the label should be translated.
  5. Click Save.
  6. On the Reporting > Reports > Advanced Analytics screen, open the custom report you want to translate.
  7. For the element containing the label you want to translate, change the text attribute to "i18n:key", where key is the Key property you specified on the AA2 Translation screen.For example, "i18n:abandonmentrate"
  8. Click Save.

    The label in the custom report displays the Name property you entered on the AA2 Translations screen.

After saving a completed translation

After saving a translation, whether done manually for specific strings or through a bulk import of a translation file, be aware that:

  • Translations of the reporting application go into effect immediately after saving the translation.
  • For a survey to accept the new translated content, you must either sync the existing survey version (if there are no other changes to the survey), or push a new survey version. For more information, see Survey versions.
  • After a successful translation process, if you make changes to a text node in a survey, the translation for that element is lost when you push the spec. If you revert to the previous spec, your translation will be restored.
  • If you make changes after carrying out a translation, keep in mind that the translations must also be updated, even those in the same language as the original text. For example, if the original text is in English but a survey is presented in an English translation, any changes you make to the original text need to be pushed to the English translation before they become visible in the survey.

Translating Unit data fields

To translate Unit Data Fields, you must first make these accessible from the translations screen. To do so:
  1. Go to Company > Units > Data Fields.

  2. Select the individual Unit data field.

  3. Set the AlternativeSet property to Translatable Text and save changes.

    Warning: If this field already has data, changing the Alternative Set clears it.
Every value that's provided for this data field —in any of the units that uses it— shows up in the translations screen, and can be translated in the same ways as other strings. For example, if a Unit Data Field called Role exists and is ser to Translatable Text, and one unit has the value for this field set to Supervisor and another to Technical Support, both Supervisor and Technical Support are available for translating in the translations screen.

Translating comments

You can translate survey takers' responses to comment fields, either manually or by using machine translation (Amazon Translate, Google Translate, or SYSTRAN). However, this process is not incorporated into the main translation process on the Translations screen. For detailed information, see Translating comments.

Optional tools

To save time and help ensure quality, Experience Cloud provides the following optional tools to assist you with translation projects. These spreadsheets take bulk data from Experience Cloud and restructure that data into readable documents that can be sent to companies or used for testing purposes. Instructions for how to use each tool can be found on the Landing Page within the spreadsheet. For access to these tools, contact your Medallia expert.

ToolDescription
Translation auditorWorks with the main translation export file to add new languages for a program, audit an existing survey program for missing translations, and estimate on the cost of translations.
Email template parserHelps you translate email templates from English to multiple languages without the risk of removing or altering tags from the HTML. After translating your templates, paste them into your main translation spreadsheet for upload back into Experience Cloud.

Alerts and Rapid Responses

Alert and Rapid Response emails cannot be translated through standard processes, so there are no corresponding Alert and Rapid Response items on the Translations screen. However, the company might require translations for these items if their customers or employees do not speak English. In that case, consider the following workarounds based on the complexity of your email templates:

  • Use a K-field — Create a text K-field that returns the different translated versions of the email based on the E-field used to identify the customer or user language. Using a K-field gives you the flexibility to manage complex conditions and unusual situations, which you can test in the JavaScript window.
  • Condition the body of email templates — For simple email templates, consider conditioning the HTML body of the email directly with all of the different translated versions of the email. This enables you to amend the content of the template without researching K-field references.

As an additional workaround for Rapid Response emails, create a different template for each language required. The benefit is having clean, condition-free templates available. If you are using multiple languages, estimate the ongoing service time for managing, amending, and testing all templates, and determine whether that maintenance time is acceptable.

As a general rule, always leave the last else condition of your code to default to the English version.

Translating alert emails

These steps configure alert emails to be translatable.
  1. Create Yes/Null K-field:

    For each translation language, create a Yes/Null K-field. The K-field returns Yes when an alert email is sent in that language.
    /** * Returns 'Yes' when the language conditions are met, and else null. */ 
    (function () { 			
    // Only going to return Yes or Null. 
       var YES = 1; 
        // Put the language condition here. For instance, this could be based on customer language: 
        var customerLanguage = seqnum(e_packages_bp_language_alt); 
        // Language 1 in this case is English, which is what we're looking for: 
        if (customerLanguage === 1)  { 
            return YES; 
        } else 
     { 
           return null; 
       } 
    })();

    The condition is usually based on a Unit data field or an Event field (E-field).

  2. Create a K-field for piping in the alert email subject:

    Name the K-field alert_subject_templatename_txt, where templatename is detractor_new, promoter_overdue, etc. The Alt Set must be of Text type. The K-field returns the email subject.
    /** * Returns the subject line of the detractor alert email. */ 
    (function () { 
        var languages = { 
            ENGLISH : 1, 
            SPANISH : 2, 
        }; 
        var subjectText; 
        // Put the language condition here. For example, this could be based on customer language: 
        var customerLanguage = seqnum(e_packages_bp_language_alt); 
        switch(customerLanguage) { 
            case languages.ENGLISH: 
                subjectText = "New Alert - Relationship NPS - Detractor"; 
                break; 
            case languages.SPANISH: 
               subjectText = "Spanish alert subject"; 
               break; 
            default: 
               subjectText = "Default alert subject"; 
        } 
        return subjectText;
    })(); 

    Use the Yes/Null K-fields created before to condition the subject line.

  3. Add this language condition to the alert emails:
    $if(ALERT_LANG_ENGLISH_YN)$ 
    English Alert text goes here. 
    $endif$ 
    $if(ALERT_LANG_SPANISH_YN)$ 
    Spanish Alert text goes here. 
    $endif$Set the Alert email subject line to be the K-field created before (for example, alert_subject_templatename_txt).

    Set the alert email subject line to be the K-field created before (for example, alert_subject_templatename_txt).

Important: Do not pipe in any Enumerated Alt Sets, as those are always shown in English.

Translation versions

The Translation versions screen tracks the versions of each item you translate through the main Translations screen.

Warning: Do not create or delete items on the Translation versions page. Make all translation changes on the main Translations screen.