[com.unity.localization 1.4.5] Cannot evaluate selector on SteamDeck build

Hello,

I’m experiencing an issue with windows players deployed to SteamDeck. All localized text fails to parse following this exception:

FormattingException: Error parsing format string: Could not evaluate the selector "key" at 27
No translation found for '{key}' in {table.TableCollectionName}

The text localizes fine when the Windows build is run on Windows, but fails when deployed on SteamDeck.

I’ve been scouring the net for answers but haven’t found any results. The logs collected from the device also display no errors with regards to localization initialization or addressables.

As I understand it, Windows games run on SteamDeck using Proton - a linux compatibility layer for Windows executables. I assume this is the source of the issue, but I can’t even begin to understand where it may be failing without any useful information the logs. I should make it clear that I’m not using any code that’s conditional on the game running on SteamDeck. AFAIK it should be the very same code.

Any ideas for how I could fix this issue?

Thank you.

Hi,
That seems to be an error in our error message.
I’m not familiar with running on steam deck but I know other games have it working.
Try changing No Translation Found Format on the localization settings, remove the {key} part. See if that fixes the issues for the other localized fields.

Thanks Karl.

Silly issue in the end - it turned out that the SteamDeck was setting the language to en-US using the System Locale Selector, which in my case had missing translations for the table.

As for the broken error message, this turned out to be because the ‘Dictionary Source’ had been removed from the Smart Format sources list.

Thanks again. Loving the care you’ve put into the package.

1 Like