Configure and create multilingual copilots

Important

Power Virtual Agents capabilities and features are now part of Microsoft Copilot Studio following significant investments in generative AI and enhanced integrations across Microsoft Copilot.

Some articles and screenshots may refer to Power Virtual Agents while we update documentation and training content.

Multilingual copilots are copilots that can communicate with customers in different languages while keeping all the content in a single copilot. In many cases, they can automatically detect the desired language based on the copilot user's web browser setting and respond in the same language, providing a more personalized and engaging experience for customers.

For the list of supported languages, see our Supported Languages article.

Note

Multilingual copilots are not suported for the following scenarios:

  • Microsoft Copilot Studio classic bots
  • Voice bots with Dynamics Omnichannel

Configuring a multilingual copilot

When a copilot is initially created, it's created with a primary language. (See the Supported Languages article for more details on how to select the copilot's primary language).

To enable a multilingual copilot:

  1. With a copilot open, expand Languages on the side navigation pane, and select Add languages.

    Setting up a multilingual copilot.

  2. Choose the languages you want to add to the copilot.

    Selecting multilingual copilot languages.

  3. Select Add Languages and confirm that the list of languages is correct.

    Screen showing all languages added to the copilot.

Note

You can add as many secondary languages as desired to the copilot, as long as they are in the list of supported languages.

Managing localization in a multilingual copilot

Note

All copilot topic and content editing must be done in the copilot's primary language. To edit the copilot's secondary language to localize the strings, you must use the steps in this section.
Once the copilot strings are localized and uploaded to the copilot as described here, you can see the localized content in the authoring canvas by switching the language in the test copilot.

To add the localization strings to your multilingual copilot:

  1. With a copilot open, expand Languages (Preview) on the side navigation pane, and select Update localizations for the language you want to update.

  2. On the Update localizations page, select JSON or ResX format to download the current localization file for that language.

    Screen showing pane to download and upload localization files.

    Note

    The downloaded file will contain the latest localization content for the copilot. If you need to download previous versions of the localization file, open the copilot's solution in Power Apps to download previous versions.

  3. Open the downloaded file and replace the primary language strings with the appropriate translated text.

  4. Return to the Update localizations page, select Browse, and upload the translated file.

  5. Close the Update localizations page.

Authoring considerations for multilingual copilots

When authoring, you can configure the copilot to change the current spoken language in the middle of a conversation. That logic can reside in any topic in the copilot.

To change the copilot's current language, you can set the User.Language variable value to one of your copilot's secondary languages. This selection changes the language spoken by your copilot immediately.

Screen showing a Set variable node defining the value of the User.Language variable.

Testing a multilingual copilot

To test a multilingual copilot:

  1. Open the test copilot.

  2. Open the menu at the top of the test copilot, and select one of the secondary languages.

    Screen showing the secondary language selection on test copilot.

  3. The test copilot will reload itself, this time using the selected secondary language. The authoring canvas shows the secondary language.

  4. Enter a message in the secondary language to test the copilot.

You can also set your browser language to the secondary language supported by your copilot, and open the Demo copilot website. The demo website opens in the secondary language, and the copilot chats using the secondary language strings.

Multilingual copilot behavior for languages that are not configured

If a copilot user has their browser configured for a language that is not configured in the copilot through the steps above, the copilot will always fallback to its primary language (the language the copilot was created in originally). The copilot's primary language cannot be changed after copilot creation.

Multilingual copilot behavior for missing translations

If the copilot author makes a change to the copilot in the primary language and doesn't upload the translations, the copilot will show the untranslated changes in the copilot's primary language. This leads to a confusing dual-language experience. Always make sure the translations are up-to-date after making changes to the copilot in the primary language.