Why a Salesforce translation is not showing

By Manuel Roldán Pérez · Updated · Salesforce steps checked against Salesforce's documentation on

On this page 6 sections
  1. 1. Find which component supplies the text
  2. 2. The checks, by kind of text
  3. 3. Confirm it as the user would see it
  4. The causes at a glance
  5. What to check next
  6. Related guides

When a user still sees the default language after you saved a translation, check four things, in this order. Do the words on the page come from the component you translated, or from another one? Is the user's language the one you translated, and is it active? Was the text typed somewhere Salesforce does not translate, such as a label entered as plain text in Lightning App Builder? And was the translation actually saved? Start by finding which component supplies the words, then run the checks for that kind of text.

1. Find which component supplies the text

The same words can come from a field label, a picklist value, a record type, a layout section, a button, a related list title, a Custom Label read by a component, a label typed in Lightning App Builder, a flow, or a standard name changed in Rename Tabs and Labels. Each is translated in a different place, and translating the wrong one changes nothing on the page. The map of where each label is translated says where each one lives; the guide to finding the metadata behind Lightning text covers how to tell which one you are looking at.

2. The checks, by kind of text

For every kind: the user's language

  1. Open the user's record and read Language: that is the language Salesforce shows them.
  2. In Setup, open Translation Language Settings and check that the language is Active. Translations reach users only once their language is active, and users can still choose a language that is not, in which case they do not see its translations (adding languages and translators).
  3. Compare the user's exact language, regional variant included, with the language you translated. For your own translations, Salesforce documents that Spanish (Mexico) uses the Spanish one (supported languages).
  4. Translations installed by a managed package appear to users whether or not the language is active, so a page in an inactive language can show some labels translated and others not (adding languages and translators).

A field label, picklist value, record type, layout section or button

These are translated in Translation Workbench (Setup → Translate), choosing the language, the setup component and the object. Check that the translation sits on the component the page actually shows: the same words on two objects, or on a field and a Custom Label, are separate components with separate translations. A standard field's label is changed per language in Rename Tabs and Labels, not in Translation Workbench's Custom Field list (rename object, tab and field labels). For a picklist value that keeps showing the default text, the picklist guide has a checklist of its own.

A label typed in Lightning App Builder

On a Lightning page, custom tab labels in a Tabs component, field section header labels and other component attribute values are not localized when they are entered as plain text in Lightning App Builder: every user sees the words as typed (Salesforce Help: localized component labels). The fix Salesforce documents is a Custom Label:

  1. Create a Custom Label with the text, and add its translations (the Custom Labels guide).
  2. In Lightning App Builder, select the component and replace the plain text with {!$Label.Your_Label_Name}.
  3. Save the page.

Expressions work only in text (String) properties of components on app, Home and record pages, not in page-level properties.

A Custom Label read by code

Code gets the Custom Label in the running user's language. In an automated context, such as a scheduled job, that is the context user's language, not the recipient's; on an Experience Cloud site, the site's own language rules apply. The Custom Labels guide covers both.

A renamed standard object or field

Names changed in Rename Tabs and Labels appear on the pages users see, but some places keep the old name until someone changes them by hand (considerations for renaming tab and field labels):

  • list views whose name was edited before, and every list view users created;
  • standard report names and descriptions;
  • email templates that mention the object or field;
  • custom fields, page layouts and record types whose names contain the old word;
  • Setup pages from Salesforce Classic, which keep the original labels.

Text in a flow

Whether a flow can be translated at all depends on its type: Salesforce's flow types table says which are supported in Translation Workbench. Within a flow, text templates and the values of merge fields are not translated, and right-to-left languages are not supported. When a label has no translation for a language, Salesforce uses its fallback language and then the original label (considerations for translating flows).

A translation that was never saved

An import that finished is not proof that a translation exists. Salesforce does not save an exported label that was left unchanged in the translation file (import translated files). Open Translate, choose the language and the component, and check that the value is there.

3. Confirm it as the user would see it

Change your own language, or log in as a test user who has it, and open the page that showed the problem. If a label is still in the default language after the checks above, go back to step 1 and check again which component supplies the words.

The causes at a glance

What you seeThe likely causeThe fix
The whole page is in the default language for one userTheir Language is another language, or it is not activeSet the language on the user; activate it in Translation Language Settings
One label stays in the default language, others are translatedThe words come from another component than the one translatedFind the component (step 1) and translate that one
A tab, section header or component title on a Lightning page never translatesIt was typed as plain text in Lightning App BuilderUse {!$Label.Name} with a translated Custom Label
Labels from an installed package appear in an inactive languageManaged package translations are shown whether or not the language is activeExpected behavior
An old object name survives after a renameList views, reports, templates or names not updated by handRename them by hand
Flow text stays in one languageThe flow type is not supported, or the text is a template or a merge field valueCheck the flow type, then whether the text is a template or merge-field value.
Nothing changed after an importThe labels were left unchanged in the file, or the import did not include themCheck the value in Translate

What to check next