Forum Discussion

vrachelann's avatar
vrachelann
New Member
10 months ago
Solved

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

  • 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

  • Anonymous's avatar
    Anonymous
    Not 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.

  • Anonymous's avatar
    Anonymous
    Not 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