Italian locale Works In Build But Not In Steam

Hello, I am using Unity Localization for my Steam game. I have 10 different languages and all translations work both in editor and build. However, I have a really strange problem. When I upload the build to Steam and play through the Steam, Italian locale does not work. It says "No translations found for ..." message on all strings. Other locales works fine and italian also works fine when I launch through the exe file without using Steam. What might be causing this?

[quote=“Afavar”, post:1, topic: 904157]
Hello, I am using Unity Localization for my Steam game. I have 10 different languages and all translations work both in editor and build. However, I have a really strange problem. When I upload the build to Steam and play through the Steam, Italian locale does not work. It says “No translations found for …” message on all strings. Other locales works fine and italian also works fine when I launch through the exe file without using Steam. What might be causing this?
[/quote]
Do you have any errors in the player log file?
Is steam setting Italian as the startup language or is it when you switch to Italian in the game options that it fails?

Hi @karl_jones , I might have figured out the issue. The problem was a bit tricky to track.

My local build was working fine. Although I have uploaded the same files to Steam, the build that was downloaded via Steam was not working. I have checked the local files of the Steam build in this path:

MyGame_Data\StreamingAssets\aa\StandaloneWindows64

The Italian bundle file had a weird i character. (X is a placeholder)

localization-string-tables-Xtalian(it)_assets_all.bundle

Then, I have checked the local files of my local Unity build. The file name was like that:

localization-string-tables-ıtalian(it)_assets_all.bundle

There was a "ı" character instead of the other weird "i". When I changed the Steam local file to "ı", it worked.

My system language was set to Turkish. In Turkish language the capital "I" letter can be lowered to "ı". I believe while building the addressables, Unity is using ToLower() for the string "Italian" and since my system language is Turkish, it is lowered as "ıtalian". Steam prob freaks out when processing this file and changes it to some other weird i character. This causes a file name mismatch in the Steam build and the italian localization table can not be loaded. I have fixed this problem by changing my system language to English and rebuilding again. I believe ToLowerInvariant() should be used instead of ToLower() in this case. You can have a look at this stackoverflow post to learn more about the "ı" problem.

https://stackoverflow.com/questions/6225808/string-tolower-and-string-tolowerinvariant

Oh good catch. Would you be able to file a bug report for this so I can send it over to the addressables team?