Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
iceparrot
Advocate II
Advocate II

Multilanguage Field Parameter

Hello everyone, 

I'm currently updating our reports to multilanguage. It is working fine for regular text elements or column names. However, I do have some issues to use the multilanguage feature with my field parameters. 

I use those to enable users to select which columns they want to see in a table.

 

My question: how can I use a dynamic naming so that the users see the selection either in English or German?

 

This is how the field parameter looks like:

kpi_tabelle = {
    ("Placement", NAMEOF('Measuretable'[PLACEMENT]), 0),
    ("Impressions", NAMEOF('Measuretable'[SUM_IMPRESSIONS]), 1),
    ("Clicks", NAMEOF('Measuretable'[SUM_CLICKS]), 2),
    ("Spending", NAMEOF('Measuretable'[SUM_SPENT_PER_CAMP_ID]), 3)
}

 

This is how I did it for our text/buttons on the report, but it is not working for the field parameters.

ML_BTN_EDIT = SWITCH(USERCULTURE(),
    "de-DE", "Bearbeiten",
    "en-US", "Edit"
) 

 

Thank you

1 ACCEPTED SOLUTION
danextian
Super User
Super User

Hi @iceparrot,

You will need to set up your parameter table to include the culture as well as the equivalent of the field for that culture.


// Parameter table with culture
Parameter = {
    // Culture: en-US
    ("Album", NAMEOF('Data'[album]), 0, "en-US"),
    ("Artist", NAMEOF('Data'[artist]), 1, "en-US"),
    ("Explicit", NAMEOF('Data'[explicit_text]), 2, "en-US"),
    ("Genre", NAMEOF('Data'[genre]), 3, "en-US"),
    ("Track Name", NAMEOF('Data'[track_name]), 4, "en-US"),
    ("Track ID", NAMEOF('Data'[track_id]), 5, "en-US"),

    // Culture: de-DE
    ("Album", NAMEOF('Data'[album]), 0, "de-DE"),
    ("Künstler", NAMEOF('Data'[artist]), 1, "de-DE"),
    ("Explizit", NAMEOF('Data'[explicit_text]), 2, "de-DE"),
    ("Genre", NAMEOF('Data'[genre]), 3, "de-DE"),
    ("Titel", NAMEOF('Data'[track_name]), 4, "de-DE"),
    ("Track-ID", NAMEOF('Data'[track_id]), 5, "de-DE"),

    // Culture: fr-FR
    ("Album", NAMEOF('Data'[album]), 0, "fr-FR"),
    ("Artiste", NAMEOF('Data'[artist]), 1, "fr-FR"),
    ("Explicite", NAMEOF('Data'[explicit_text]), 2, "fr-FR"),
    ("Genre", NAMEOF('Data'[genre]), 3, "fr-FR"),
    ("Nom de Piste", NAMEOF('Data'[track_name]), 4, "fr-FR"),
    ("ID Piste", NAMEOF('Data'[track_id]), 5, "fr-FR")
}

It is possible to automatically filter a slicer with a measure to the culture relevant to the user, but not if the field parameters are used in other visuals. Using the measure below will not filter the visible columns but will instead hide all rows:


culture_check = 
IF ( SELECTEDVALUE ( Parameter[Culture] ) = USERCULTURE (), 1 )




Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.

View solution in original post

4 REPLIES 4
danextian
Super User
Super User

Hi @iceparrot,

You will need to set up your parameter table to include the culture as well as the equivalent of the field for that culture.


// Parameter table with culture
Parameter = {
    // Culture: en-US
    ("Album", NAMEOF('Data'[album]), 0, "en-US"),
    ("Artist", NAMEOF('Data'[artist]), 1, "en-US"),
    ("Explicit", NAMEOF('Data'[explicit_text]), 2, "en-US"),
    ("Genre", NAMEOF('Data'[genre]), 3, "en-US"),
    ("Track Name", NAMEOF('Data'[track_name]), 4, "en-US"),
    ("Track ID", NAMEOF('Data'[track_id]), 5, "en-US"),

    // Culture: de-DE
    ("Album", NAMEOF('Data'[album]), 0, "de-DE"),
    ("Künstler", NAMEOF('Data'[artist]), 1, "de-DE"),
    ("Explizit", NAMEOF('Data'[explicit_text]), 2, "de-DE"),
    ("Genre", NAMEOF('Data'[genre]), 3, "de-DE"),
    ("Titel", NAMEOF('Data'[track_name]), 4, "de-DE"),
    ("Track-ID", NAMEOF('Data'[track_id]), 5, "de-DE"),

    // Culture: fr-FR
    ("Album", NAMEOF('Data'[album]), 0, "fr-FR"),
    ("Artiste", NAMEOF('Data'[artist]), 1, "fr-FR"),
    ("Explicite", NAMEOF('Data'[explicit_text]), 2, "fr-FR"),
    ("Genre", NAMEOF('Data'[genre]), 3, "fr-FR"),
    ("Nom de Piste", NAMEOF('Data'[track_name]), 4, "fr-FR"),
    ("ID Piste", NAMEOF('Data'[track_id]), 5, "fr-FR")
}

It is possible to automatically filter a slicer with a measure to the culture relevant to the user, but not if the field parameters are used in other visuals. Using the measure below will not filter the visible columns but will instead hide all rows:


culture_check = 
IF ( SELECTEDVALUE ( Parameter[Culture] ) = USERCULTURE (), 1 )




Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.
cengizhanarslan
Solution Sage
Solution Sage

Field parameters don’t support dynamic labels via DAX (so USERCULTURE() can’t rename "Placement", "Clicks", etc.). The display names in a field parameter are static.

 

The practical workaround is to create separate field parameters per language and show the right one based on language.

Example:

  • kpi_tabelle_EN (Placement, Impressions, …)

  • kpi_tabelle_DE (Platzierung, Impressionen, …)

Then either:

  • Use a bookmark toggle (EN/DE) to show the correct slicer + table, or

  • Use a language table + field parameter selector pattern (two visuals, one per language), and hide/show based on language.

If you want the cleanest setup with minimal duplication: use two slicers (EN/DE) + two tables and control visibility with bookmarks. That’s the most reliable way today.

_________________________________________________________
If this helped, ✓ Mark as Solution | Kudos appreciated
Connect on LinkedIn
Zanqueta
Solution Sage
Solution Sage

Hi @iceparrot

Field Parameters in Power BI are powerful for dynamic column selection, but they do not natively support dynamic display names based on culture because the names you define in the parameter table are static text.
Here’s why your approach works for buttons but not for Field Parameters:
  • ML_BTN_EDIT uses a DAX measure with SWITCH(USERCULTURE()), which is evaluated at runtime.
  • Field Parameter names are stored as literal text in the parameter table and are not evaluated dynamically.

    Two Practical Approaches

    1. Use a Translation Table for Display Names

    Instead of hardcoding names in the Field Parameter, create a separate table with translations:
    Example Translation Table:
    ColumnKey en-US de-DE SelectedColumnName = VAR CurrentCulture = USERCULTURE() VAR SelectedKey = SELECTEDVALUE('Field Parameter'[ColumnKey]) RETURN SWITCH(CurrentCulture, "de-DE", LOOKUPVALUE('Translations'[de-DE], 'Translations'[ColumnKey], SelectedKey), "en-US", LOOKUPVALUE('Translations'[en-US], 'Translations'[ColumnKey], SelectedKey), SelectedKey )
    Use this measure in your visual title or dynamic labels instead of relying on the static Field Parameter name.
     

    2. Dynamic Headers via Measures

    If you want the column headers themselves to change language:
    • Instead of using Field Parameters directly for display names, use measures that return the translated name.
    • For example:
    Placement_Measure = SWITCH(USERCULTURE(), "de-DE", "Platzierung", "en-US", "Placement" )

     

    Then include these measures in your Field Parameter definition instead of static text.

    Important Note

    Field Parameters themselves cannot dynamically rename columns inside the table visual. The workaround is to:
    PlacementPlacementPlatzierung
    ImpressionsImpressionsImpressionen
    ClicksClicksKlicks
    SpendingSpendingAusgaben
     
    Then create a measure for the display name:
     
pankajnamekar25
Super User
Super User

Hello @iceparrot 

 

In Power BI, field parameter labels are static and cannot evaluate DAX like USERCULTURE().
So direct multilingual naming inside a single field parameter is not supported.

 

Create separate field parameters per language
Example
KPI_Table_EN → English labels
KPI_Table_DE → German labels
Keep the same measures/columns in both parameters
Only the display names differ
Create a language selector
Either a Language slicer or auto-detect using USERCULTURE()
Create a DAX switcher measure
Chooses the correct field parameter based on selected language
Use the switcher measure in the table visual
Column headers change automatically between English and German

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.