Multilingual reports in Power BI

October 25, 2020
Denis Selimovic
Data modelcomment 3Created with Sketch Beta.11 comments

This post is also available in: German

For a while, it was only possible to provide a Power BI report in multiple languages using workarounds. Recently, the enhanced dataset metadata has made it very easy to change the language of a report in Power BI, making it multilingual, for example in German and English. Since the Power BI September Update, the enhanced dataset metadata is now the standard for metadata, upgrading a Power BI report almost to the level of an SSAS Tabular Model.

Enhanced dataset metadata enables SSAS Tabular functionalities

One of these new capabilities is to offer the data model of each Power BI report in multiple languages.

The easiest way to maintain multiple languages is currently using Tabular Editor. As an example we use the following simple report based on the Adventure Works database:

Report to be translated
Report to be translated

And the tables to be translated:

Tables of the data model to be translated
Tables of the data model to be translated

Once the Tabular Editor is installed, it can be started under “External Tools” with connection to the open file:

Open current data model in Tabular Editor
Open current data model in Tabular Editor

Maintaining translations in the Tabular Editor

In Tabular Editor we see the folder “Translations” at the very bottom, where we are able to create a new language for our data model by a click on the right mouse button:

Translations in Tabular Editor
Translations in Tabular Editor

We can then store the translations for every existing table:

Translating a table in Tabular Editor
Translating a table in Tabular Editor

Or also the name for each column:

Translating a column in Tabular Editor
Translating a column in Tabular Editor

Or also a measure:

Translating a Measure in Tabular Editor
Translating a Measure in Tabular Editor

We can recognize already translated tables by the blue background color of the text. After saving, the values are already available in the opened Power BI file.

Display in Power BI Desktop via language selection

To display the new language now, we have to change the application language to our target language, here German. We can do this in Power BI under File and Options:

image 27
Change language in the Power BI Desktop

After a restart of Power BI Desktop the report appears in the desired language:

Translated Power BI Report in German
Translated Power BI Report in German

The tables and columns are now also displayed in the new language translation:

Translated table, column and measure names
Translated table, column and measure names

Only the automatic date hierarchy is still created in English. I have not yet found a solution here either. If you have a tip here, please write it in the comments.

Display on the Power BI Service / powerbi.com

On the Power BI service, the report can also be displayed in a translated language. For this purpose, the display language must be set to the corresponding target language in the settings:

Language selection on the Power BI page
Language selection on the Power BI page

Theoretically the report should now be displayed in German, but in my case the report switches back to English after about 0.5 seconds. Also different browsers including in German language showed the same result here. Possibly the language of the operating system is used in this case. If you know more about it, feel free to write it in the comments.

DAX Code stays unchanged

It is important to mention that only the names of the individual tables and columns are displayed in the translated language. The actual names in the data model remain unaffected. This is clearly shown by the Dax formula of our average sales:

DAX formulas still access original names and not translated table and column names
DAX formulas still access original names and not translated table and column names

As soon as we go to the formula of the now translated field “Durchschn. Verkauf” we see the formula for “Average Sales”. This measure accesses the column “SalesAmount” of the table “FactInternetSales”, which now matches the column “Umsatz” in the table “FktInternetSales”.

A development in the translated language is unfortunately not possible, the DAX Interpreter cannot deal with the translated column names:

DAX Interpreter needs original column names
DAX Interpreter needs original column names

This is simply to illustrate how confusing translations could become during development. For end users this is a feature that has long been expected and needed, developers should continue to access the original language of the report.