It started under the Official Languages Act.
We were a Canadian BI team working under Canada's bilingual-publication requirements. Every report, every dashboard, every measure label had to ship in both English and French. Bilingualism wasn't a nice-to-have, it was a legal obligation.
We spent months looking for the right solution.
Open-source utilities, paid extensions, custom scripts. We tried all of it. Nothing held up at our scale: a large team, fast turn-around, multiple analysts editing the same report at the same time.
We didn't want two reports.
The obvious workaround, maintain a French clone of every English report, doubled the maintenance burden overnight. Every visual change, every new measure, every KPI tweak had to happen twice. We rejected it.
We didn't want a manual process either.
A shared spreadsheet to track report translations. Hand-merged before every deploy. That's a process built to break for a large team. We rejected that too.
Which left one bad option.
Concatenate both languages in every text on the report. Every caption a long "Sales | Ventes" string. Ugly, but defensible.
And no reliable tool from Microsoft.
Power BI ships with cultures and translation tables baked into the Tabular Object Model. The plumbing is there. But Microsoft's first-party tooling stops at "you can put data in those tables", leaving teams to figure out how to edit, validate, and ship translations at scale. We waited for it. It didn't come.
So we built Daxlate.
A desktop app that talks to the model directly. A grid that shows every culture side by side. An Excel round-trip for translators who don't live in Power BI Desktop. PBIX files with data models are never overwritten on save, so a careless write can't clobber a quarter of localization work. Nothing leaves the machine.
Where we are now.
Daxlate now covers both layers of a Power BI report. On the semantic-model side: cultures, captions, descriptions, and hierarchies. And on the report canvas itself: visual titles, headers, buttons, and text boxes, so the text your readers see switches language too, not just the data model underneath.
One piece of the full vision is still left to build:
- A first-class CLI for CI/CD pipelines.
We'll get there.