Share via

Issue with translation after creating bilingual chatbot on Microsoft Copilot

Ngwe, Madeleine (StatCan) 40 Reputation points
2026-05-14T12:32:58.6633333+00:00

I created a chatbot agent using Microsoft pilot studio, i wished to make it bilingual.
On my way to that I added a secondary language French and updated the JSON file accordingly in French and uploaded it.
My issue comes after uploading it unto my agent, It is still ineffective because my sampled Topics were not translated. I still had to create new sampled Topics for greeting, start over....
And also I don't know if it is because i am using classical orchestration but it seem the agent does not recognised French

Microsoft Copilot | Other
0 comments No comments

Answer accepted by question author

Kurie 160 Reputation points
2026-05-14T12:46:51.3733333+00:00
  1. System Topics don’t get auto-translated

When you build a chatbot in Copilot Studio, there are pre-built conversations built into it by default, things like how it says hello or how it handles “start over.” When you upload a French translation file, it only translates the stuff you built. Those pre-built conversations stay in English and you have to go in and manually translate them one by one.

  1. Classic Orchestration doesn’t detect language automatically

There are two “modes” the chatbot can run in. The older mode (Classic) is basically just dumb rule-following, it won’t notice that someone is typing in French and switch automatically. So you have to build that yourself by asking the user “what language do you prefer?” at the start, saving their answer, and then using that answer to show the right language throughout the chat.

  1. Double check your JSON upload

A JSON file is basically a structured text file that holds all your translated content. If even one tiny thing is formatted wrong in that file, Copilot Studio might just ignore it without telling you anything went wrong. So it’s worth double checking that the file looks exactly the way Copilot Studio originally gave it to you before you edited it.

The newer mode (Generative) is smarter and can automatically detect what language someone is using without you having to set anything up. Switching to that would solve the language recognition problem much more easily.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

Answer accepted by question author

AI answer

2026-05-14T12:33:13.8233333+00:00

Adding French as a secondary language and uploading a translated JSON only localizes the authored content; it doesn’t automatically create or translate topics, starter prompts, or change how classic orchestration works.

Key points for this scenario:

  1. Topic editing is always in the primary language
    • All topic and content authoring is done in the agent’s primary language only.
    • Secondary-language content is provided via localization files (JSON/ResX) that map to existing primary-language strings.
    • If a topic or message doesn’t have a translated string in the uploaded localization file, it will still appear in the primary language at runtime.
  2. What the localization file actually does
    • When the localization file for French is first downloaded, all strings are in the primary language.
    • After translating and re-uploading, only those strings that exist in the primary language and are correctly translated in the file will appear in French.
    • If new topics or messages were added after the last download, they must be re-exported and translated again; otherwise, they remain in the primary language.
    • Previously translated strings whose original text changed in the primary language will not auto-update; they must be retranslated and re-uploaded.
  3. Why sample topics (greeting, start over, etc.) still appear in the primary language
    • Sample topics are just topics with system-provided content. They follow the same localization rules as any other topic.
    • If the French localization file does not contain translated entries for the greeting/start-over messages, those messages will still show in the primary language.
    • Creating new French topics is optional; the intended model is to translate the existing topics via the localization file, not to duplicate them per language.
  4. Language detection and why French may not be recognized
    • A multilingual agent chooses the language based on the client/browser language. If the browser is not set to French, the agent will default to the primary language.
    • If the browser is set to a language that the agent does not support, it also falls back to the primary language.
    • For agents using generative orchestration, generated messages are translated automatically; for non-generative (classic) orchestration, only strings that have translations in the localization file will appear in the secondary language.
  5. Recommended checks and steps
    1. Confirm French is added as a secondary language in Settings → Languages.
    2. Download the current French localization file again (JSON/ResX) from Languages → Upload → Update localizations and verify:
      • All greeting/start-over topic strings appear and are translated into French.
      • There are no missing or unchanged primary-language strings for those topics.
    3. Re-upload the updated French localization file.
    4. Set the browser UI language to French and start a new session with the published agent to verify that:
      • The agent detects French from the browser and uses the French strings where translations exist.
      • Any untranslated strings still appear in the primary language, which indicates they need to be added/updated in the localization file.

If classic orchestration is used without generative orchestration, French will only appear where the localization file provides translations; there is no automatic translation of topic content in that mode.


References:

AI-generated content may be incorrect. Read our transparency notes for more information.

Was this answer helpful?

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.