Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
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
Solved! Go to Solution.
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 )
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 )
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.
Hi @iceparrot
If you have chance, I use Tabular Editor and strongly recommend it to achieve this goal. Please take a look at the links below for more details. https://tabulareditor.com/blog/creating-multilingual-power-bi-dataset
If this response was helpful in any way, I’d gladly accept a 👍
| Placement | Placement | Platzierung |
| Impressions | Impressions | Impressionen |
| Clicks | Clicks | Klicks |
| Spending | Spending | Ausgaben Then create a measure for the display name: |
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
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 39 | |
| 37 | |
| 33 | |
| 32 | |
| 29 |
| User | Count |
|---|---|
| 133 | |
| 88 | |
| 85 | |
| 68 | |
| 64 |