Forum Discussion
Issue with Translations Builder post publishing
Hi, I have a use case where I need to create some reports in Power BI in both Arabic and English. I need a dynamic option as I don't want to have two duplicated pages. I found a solution using Translations Builder which works well but the only issue is to use it I would need to manually add '?language=ar-OM' to the report link address after publishing. Is there a way where the user goes to the Power BI Service and selects the dashboard from the home page and it will automatically show it in Arabic? I need a way to test it to see that it works.
Hi vrachelann,
You want:
One single Power BI report (no page duplication),
Automatic or user-driven switching between Arabic and English,
Without manually editing the report URL or creating two separate versions.
I found some ressources :
- https://www.youtube.com/watch?v=zCEtzxhGn-Q
- https://www.youtube.com/watch?v=q2pS9IBzk-Q
- https://powerbi.microsoft.com/en-ie/blog/building-multi-language-reports-for-power-bi-in-2023/
- https://learn.microsoft.com/en-us/dax/userculture-function-dax
How the Dynamic Multilingual Setup Works :
1. Create a disconnected “Language” table
You create a simple table with your supported languages:
LanguageTable = DATATABLE(
"Language", STRING,
{{"English"}, {"Arabic"}}
)Add this table as a slicer in your report so the user can pick their language
2. Create a translation table
This is a key concept from the video.
Make a table that maps your text labels to each language.
You can store this as:
A separate table in your Power BI model (Translations), or
A small Excel file imported into your dataset.
3. Create a translation measure
Use DAX to dynamically pick the correct label based on the user’s slicer selection:
SelectedLanguage =
SELECTEDVALUE(LanguageTable[Language], "English")
Translate =
VAR _LabelKey = SELECTEDVALUE(Translations[LabelKey])
VAR _Language = [SelectedLanguage]
RETURN
SWITCH(
TRUE(),
_Language = "Arabic", LOOKUPVALUE(Translations[Arabic], Translations[LabelKey], _LabelKey),
LOOKUPVALUE(Translations[English], Translations[LabelKey], _LabelKey)
). Use the measure in your visuals
Instead of hardcoding text in your cards, titles, and buttons:
Use measures or dynamic titles referencing the translation measure.
Example:
Card title → = [Translate]
Button label → set to “fx” (format expression) → bind to [Translate]
✅ Now, when the user changes the slicer from “English” to “Arabic,” all text labels in your report dynamically switch.
Hope it can help you !
Best regards,
Antoine
3 Replies
- AntoineW
Super User
Hi vrachelann,
You want:
One single Power BI report (no page duplication),
Automatic or user-driven switching between Arabic and English,
Without manually editing the report URL or creating two separate versions.
I found some ressources :
- https://www.youtube.com/watch?v=zCEtzxhGn-Q
- https://www.youtube.com/watch?v=q2pS9IBzk-Q
- https://powerbi.microsoft.com/en-ie/blog/building-multi-language-reports-for-power-bi-in-2023/
- https://learn.microsoft.com/en-us/dax/userculture-function-dax
How the Dynamic Multilingual Setup Works :
1. Create a disconnected “Language” table
You create a simple table with your supported languages:
LanguageTable = DATATABLE(
"Language", STRING,
{{"English"}, {"Arabic"}}
)Add this table as a slicer in your report so the user can pick their language
2. Create a translation table
This is a key concept from the video.
Make a table that maps your text labels to each language.
You can store this as:
A separate table in your Power BI model (Translations), or
A small Excel file imported into your dataset.
3. Create a translation measure
Use DAX to dynamically pick the correct label based on the user’s slicer selection:
SelectedLanguage =
SELECTEDVALUE(LanguageTable[Language], "English")
Translate =
VAR _LabelKey = SELECTEDVALUE(Translations[LabelKey])
VAR _Language = [SelectedLanguage]
RETURN
SWITCH(
TRUE(),
_Language = "Arabic", LOOKUPVALUE(Translations[Arabic], Translations[LabelKey], _LabelKey),
LOOKUPVALUE(Translations[English], Translations[LabelKey], _LabelKey)
). Use the measure in your visuals
Instead of hardcoding text in your cards, titles, and buttons:
Use measures or dynamic titles referencing the translation measure.
Example:
Card title → = [Translate]
Button label → set to “fx” (format expression) → bind to [Translate]
✅ Now, when the user changes the slicer from “English” to “Arabic,” all text labels in your report dynamically switch.
Hope it can help you !
Best regards,
Antoine
- AnonymousNot applicable
Hi vrachelann ,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions.
Thank you. - AnonymousNot applicable
Hi vrachelann
May I check if this issue has been resolved? If not, Please feel free to contact us if you have any further questions.
Thank you