Forum Discussion
iceparrot
7 months agoAdvocate 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 wi...
- 7 months ago
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 )
Zanqueta
7 months agoSuper User
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 )Placement_Measure = SWITCH(USERCULTURE(), "de-DE", "Platzierung", "en-US", "Placement" )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:
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:- Use dynamic titles and labels for user-facing text.
- Or replace Field Parameters with a custom slicer and measures if multilingual headers are critical.
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: