Language customization in Microsoft Entra External ID

Tip

This article applies to B2B collaboration user flows. If your tenant is configured for customer identity and access management, see Customize the language of the authentication experience for customers.

Language customization in Microsoft Entra External ID allows your user flow to accommodate different languages to suit your user's needs. Microsoft provides the translations for 36 languages. In this article, you learn how to customize the attribute names on the attribute collection page, even if your experience is provided for only a single language.

How language customization works

By default, language customization is enabled for users signing up to ensure a consistent sign-up experience. You can use languages to modify the strings displayed to users as part of the attribute collection process during sign-up. If you're using custom user attributes, you need to provide your own translations.

Customize your strings

Tip

Steps in this article might vary slightly based on the portal you start from.

Language customization enables you to customize any string in your user flow.

  1. Sign in to the Microsoft Entra admin center as at least an External ID User Flow Administrator.
  2. Browse to Identity > External Identities > User flows.
  3. Select the user flow that you want to enable for translations.
  4. Select Languages.
  5. On the Languages page for the user flow, select the language that you want to customize.
  6. Expand the Attribute collection page.
  7. Select Download defaults (or Download overrides if you previously edited this language).

These steps give you a JSON file that you can use to start editing your strings.

Screenshot of downloading the default language customization json file.

Change any string on the page

  1. Open the JSON file downloaded from previous instructions in a JSON editor.
  2. Find the element that you want to change. You can find StringId for the string you're looking for, or look for the Value attribute that you want to change.
  3. Update the Value attribute with what you want displayed.
  4. For every string that you want to change, change Override to true. If the Override value isn't changed to true, the entry is ignored.
  5. Save the file and upload your changes.

Screenshot of uploading the language customization json file.

Change extension attributes

If you want to change the string for a custom user attribute, or you want to add one to the JSON, it's in the following format:

{
  "LocalizedStrings": [
    {
      "ElementType": "ClaimType",
      "ElementId": "extension_<ExtensionAttribute>",
      "StringId": "DisplayName",
      "Override": true,
      "Value": "<ExtensionAttributeValue>"
    }
    [...]
}

Replace <ExtensionAttribute> with the name of your custom user attribute.

Replace <ExtensionAttributeValue> with the new string to be displayed.

Provide a list of values by using LocalizedCollections

If you want to provide a set list of values for responses, you need to create a LocalizedCollections attribute. LocalizedCollections is an array of Name and Value pairs. The items are displayed in the order listed. To add LocalizedCollections, use the following format:

{
  "LocalizedStrings": [...],
  "LocalizedCollections": [{
      "ElementType":"ClaimType",
      "ElementId":"<UserAttribute>",
      "TargetCollection":"Restriction",
      "Override": true,
      "Items":[
           {
                "Name":"<Response1>",
                "Value":"<Value1>"
           },
           {
                "Name":"<Response2>",
                "Value":"<Value2>"
           }
     ]
  }]
}
  • ElementId is the user attribute that this LocalizedCollections attribute is a response to.
  • Name is the value shown to the user.
  • Value is what is returned in the claim when this option is selected.

Upload your changes

  1. After you complete the changes to your JSON file, go back to your tenant.
  2. Select User flows and select the user flow that you want to enable for translations.
  3. Select Languages.
  4. Select the language that you want to translate to.
  5. Select Attribute collection page.
  6. Select the folder icon, and select the JSON file to upload.
  7. The changes are saved to your user flow automatically. You can find the override under the Configured tab.
  8. To remove or download your customized override file, select the language and expand the Attribute collection page.

Screenshot of removing or downloading the language customization json file.

Additional information

Page UI customization labels as overrides

When you enable language customization, your previous edits for labels using page UI customization are persisted in a JSON file for English (en). You can continue to change your labels and other strings by uploading language resources in language customization.

Up-to-date translations

Microsoft is committed to providing the most up-to-date translations for your use. Microsoft continuously improves translations and keeps them in compliance for you. Microsoft identifies bugs and global terminology changes, and makes updates that work seamlessly in your user flow.

Support for right-to-left languages

Microsoft currently doesn't provide support for right-to-left languages, but you can use custom locales and CSS to change how strings are displayed. If you need this feature, vote for it on Azure Feedback.

Social identity provider translations

Microsoft provides the ui_locales OIDC parameter to social logins. But some social identity providers, including Facebook and Google, don't honor them.

Browser behavior

Chrome and Firefox both request their set language. If the language is supported, it displays instead of the default. Microsoft Edge currently doesn't request a language and uses the default language.

Supported languages

Microsoft Entra External ID includes support for the following languages. User flow languages are provided by Microsoft Entra External ID. The multifactor authentication notification languages are provided by Microsoft Entra multifactor authentication.

Language Language code User flows MFA notifications
Arabic ar X indicating no. Green check mark.
Bulgarian bg X indicating no. Green check mark.
Bangla bn Green check mark. X indicating no.
Catalan ca X indicating no. Green check mark.
Czech cs Green check mark. Green check mark.
Danish da Green check mark. Green check mark.
German de Green check mark. Green check mark.
Greek el Green check mark. Green check mark.
English en Green check mark. Green check mark.
Spanish es Green check mark. Green check mark.
Estonian et X indicating no. Green check mark.
Basque eu X indicating no. Green check mark.
Finnish fi Green check mark. Green check mark.
French fr Green check mark. Green check mark.
Galician gl X indicating no. Green check mark.
Gujarati gu Green check mark. X indicating no.
Hebrew he X indicating no. Green check mark.
Hindi hi Green check mark. Green check mark.
Croatian hr Green check mark. Green check mark.
Hungarian hu Green check mark. Green check mark.
Indonesian id X indicating no. Green check mark.
Italian it Green check mark. Green check mark.
Japanese ja Green check mark. Green check mark.
Kazakh kk X indicating no. Green check mark.
Kannada kn Green check mark. X indicating no.
Korean ko Green check mark. Green check mark.
Lithuanian lt X indicating no. Green check mark.
Latvian lv X indicating no. Green check mark.
Malayalam ml Green check mark. X indicating no.
Marathi mr Green check mark. X indicating no.
Malay ms Green check mark. Green check mark.
Norwegian Bokmal nb Green check mark. X indicating no.
Dutch nl Green check mark. Green check mark.
Norwegian no X indicating no. Green check mark.
Punjabi pa Green check mark. X indicating no.
Polish pl Green check mark. Green check mark.
Portuguese - Brazil pt-br Green check mark. Green check mark.
Portuguese - Portugal pt-pt Green check mark. Green check mark.
Romanian ro Green check mark. Green check mark.
Russian ru Green check mark. Green check mark.
Slovak sk Green check mark. Green check mark.
Slovenian sl X indicating no. Green check mark.
Serbian - Cyrillic sr-cryl-cs X indicating no. Green check mark.
Serbian - Latin sr-latn-cs X indicating no. Green check mark.
Swedish sv Green check mark. Green check mark.
Tamil ta Green check mark. X indicating no.
Telugu te Green check mark. X indicating no.
Thai th Green check mark. Green check mark.
Turkish tr Green check mark. Green check mark.
Ukrainian uk X indicating no. Green check mark.
Vietnamese vi X indicating no. Green check mark.
Chinese - Simplified zh-hans Green check mark. Green check mark.
Chinese - Traditional zh-hant Green check mark. Green check mark.

Next steps