How I Use Claude and Easy Translator to Translate Dynamics 365 Labels in Minutes

If you’ve ever had to translate hundreds of field labels in Dynamics 365 from Norwegian to English (or the other way around), you know the drill. Easy Translator in XrmToolBox exports everything neatly to Excel. Great. But then you’re either staring at a spreadsheet full of empty cells that need translating, or you’ve got hundreds of labels that exist but need rewording to match your terminology.

Or you go the built-in route: download the translations from the solution, unzip the file, open the XML in Excel, make your changes, zip it back up, and import it again. It works, but it’s clunky and easy to break if you accidentally touch the wrong cell in that XML structure.

I used to copy labels one by one into Google Translate, tweak the output, paste it back. It worked. It was also mind-numbingly slow.

And translation is only half the problem. The same label often appears across multiple forms, attributes, and option sets. Spread across different sheets in the export. Trying to fix an inconsistent term with Excel’s Search and Replace means running it per sheet, double-checking partial matches, and hoping you didn’t miss a tab. For a label that shows up 20 times across four sheets, that’s a lot of clicking for what should be a simple change.

Then it hit me: Claude has an Excel add-in. Easy Translator exports to Excel. What if I just let Claude handle the entire sheet: translations, cleanup, all of it?

It works. Really well, actually.

What you need

  • XrmToolBox — free tool for Dynamics 365 / Dataverse administration (link)
  • Easy Translator — free plugin for XrmToolBox (link)
  • Claude for Excel — add-in from Microsoft Marketplace (link)
  • A Claude Pro or Max subscription

The workflow

1. Export labels from Easy Translator

Connect to your environment in XrmToolBox, open Easy Translator, and select the tables and components you want to translate. Export to Excel.

You’ll get a spreadsheet with columns for each enabled language. One column with your base language filled in, one or more empty columns for the target language.

Easy Translator export in XrmToolBox — showing the table/component selection and the Export button

2. Open the Excel file and activate Claude

Open the exported file in Excel. Press Ctrl+Alt+C on Windows (or Ctrl+Option+C on Mac) to open the Claude sidebar. Or, click the add-in in the toolbar.

Excel file open with the Claude sidebar visible on the right, showing the Demo sheet with the industrycode picklist and empty Norwegian column.

3. Ask Claude to translate

Here’s the prompt I used:

I have an Easy Translator export with the standard industrycode 
picklist. Can you translate the missing Norwegian labels in column F?

Claude reads the sheet, spots the gaps, and proposes translations. In my case it found 22 missing Norwegian translations out of 46 industry codes.

For this post I’m using a separate demo tab with the standard industrycode picklist. In a real scenario you’d be working directly on the sheets Easy Translator exports, like OptionSets, Attributes, or Forms Fields.

Claude’s response showing “I found 22 missing Norwegian translations in the industrycode picklist. Shall I fill these in?

What got me was the context-awareness. It doesn’t translate word by word. It picks up that these are CRM labels and chooses accordingly. “Brokers” becomes “Meglere”, not “Meklere”. “Legal Services” becomes “Juridiske tjenester”. “SIG Affiliations” becomes “Interesseorganisasjoner”. You’d have to look those up one by one to get that right manually.

You can also tell it to keep specific terms untranslated. Business-specific terms that shouldn’t be touched? Just say so in the prompt.

Claude filling in the Norwegian column cell by cell in real time — showing the Allow once dialog for the first few, then Always allow for the rest

4. Review and adjust

One thing worth mentioning: Claude asks permission before touching your spreadsheet. For each cell change you get a dialog: “Deny”, “Always allow”, or “Allow once”. Want full control? Click “Allow once” and Claude checks with you before each update. Trust the batch? Hit “Always allow” with Ctrl+Enter.

I’d recommend “Allow once” on your first run so you see exactly what’s changing. Once you’re comfortable, switch to “Always allow” for bigger batches. That’s what I did. Verified the first few, then let Claude run.

Permission dialog showing Deny / Always allow / Allow once options

Then go through the results. Most will be spot on, but domain-specific terms might need a tweak. Same review you’d do after any translation, AI or human. Difference is it takes five minutes instead of being the entire job.

5. Import back via Easy Translator

Save the Excel file and import it back through Easy Translator in XrmToolBox. Publish your customizations, and the translated labels are live.

A word of warning: The import is the slowest part. Claude does its thing in minutes, but Easy Translator needs time to push every change back into Dataverse. Keep your PC awake and XrmToolBox in the foreground during the import. If your machine goes to sleep or the app loses focus mid-import, you risk the process aborting. And then you get to figure out which labels made it in and which didn’t.

Easy Translator import in XrmToolBox

Bonus: standardize inconsistent labels

Translation isn’t the only thing this is good for. In most environments I’ve worked with, the same label has been spelled differently by different people over the years. Nobody notices until you export them all to one spreadsheet.

In my export, after Claude translated the missing labels, I asked a simple follow-up:

Can you outline the labels with inconsistencies first?

Claude scanned all 46 labels and found 5 casing inconsistencies:

EnglishNorwegian (before)Issue
ConsultingkonsulentvirksomhetStarts with lowercase
Financialfinansielle tjenesterStarts with lowercase
TransportationTRANSPORTALL CAPS
ManufacturingproduksjonStarts with lowercase
Health and social serviceshelse og sosiale tjenesterStarts with lowercase

This is the kind of stuff that builds up over time. Someone typed a label in lowercase, someone else used all caps, and it went unnoticed because it’s buried in a list of 46 values. Or someone updates a form label, column label in one language in the make.powerapps.com portal and forget to translations. Happens all the time. Users see it, though. Inconsistent labels look sloppy and may make filtering unreliable.

Claude’s response listing the 5 inconsistencies in a clean table with before/after

I told Claude to fix all 5, and it standardized everything to sentence case in one pass:

  • konsulentvirksomhet → Konsulentvirksomhet
  • finansielle tjenester → Finansielle tjenester
  • TRANSPORT → Transport
  • produksjon → Produksjon
  • helse og sosiale tjenester → Helse og sosiale tjenester
Claude’s confirmation showing all 5 fixes with checkmarks.

Below is a Gif showing the update process:

Gif showing the update of inconsistent labels.

Always double-check

After the first round, I asked: “Are there any labels that still have inconsistent casing or formatting?” There were. More cells that weren’t part of the original search. Variations I hadn’t thought to include in my prompt. Claude found and fixed them.

Get in the habit of asking Claude to verify its own work after a batch. A quick “did we miss anything?” catches what the initial prompt didn’t.

Cross-sheet cleanup

Claude also handles standardization across sheets. In a real export I worked on, the same label appeared in four different sheets: OptionSets, Attributes, Forms Fields, and Booleans. It had been written with three different formatting conventions. Slash, hyphen, and inconsistent casing.

I asked Claude to find and fix all variations across the entire workbook. It found 101 cells across 7 variation groups and fixed them all in one session. Try doing that with Find and Replace. You’d be running it per sheet, per variation, per tab, hoping you caught everything.

You stay in control the whole time. Claude proposes, you confirm. You’re just not the one hunting through hundreds of rows.

Export once, clean up everything, import once.

A safe example you can try

If you want to test this without client data, use the standard Dynamics 365 industrycode picklist. Create a sheet matching the Easy Translator export format:

EntityAttributeTypeValueEnglish (1033)Norwegian (1044)
leadindustrycodePicklist1AccountingRegnskap
leadindustrycodePicklist2Agriculture and Non-petrol Natural Resource Extraction
leadindustrycodePicklist4Brokers
leadindustrycodePicklist7Consultingkonsulentvirksomhet
leadindustrycodePicklist15Equipment Rental and LeasingUtleie av utstyr
leadindustrycodePicklist16Financialfinansielle tjenester
leadindustrycodePicklist20Insurance
leadindustrycodePicklist21Legal Services
leadindustrycodePicklist30TransportationTRANSPORT
leadindustrycodePicklist33Wholesale

This gives you a mix of: already translated, missing translations, and casing inconsistencies. Run the translation prompt, then ask Claude to find inconsistencies. You should see it translate the 4 empty labels and catch the 3 casing issues.

Why this works better than Google Translate

Google Translate is fine for general text. But CRM labels are short, context-dependent terms where a literal translation is often wrong. “Sak” means “Case” in a CRM context, but Google might give you “Thing” or “Cause” depending on its mood.

With Claude you tell it the context up front, “these are CRM field labels”, and it adjusts. It also sees the entire sheet at once, so it stays consistent. If it translates “Sak” as “Case” in row 5, it uses “Case” in row 47 too. Google Translate has no memory between cells.

How long does it take?

A typical export of 100–200 labels: about two minutes for Claude to translate, plus five minutes for review. Compare that to an hour or more of copy-paste-tweak.

When you’re setting up a new environment or adding a language to an existing one, that adds up.

Fair warning though: the actual translation may take minutes. Writing a blog post about how fast it is? That took considerably longer than I like to admit. So I hope you found it useful!


Give it a try next time you’re staring updating translations, you might find it more fun and faster then by doing it manually.


For More Content See the Latest Posts