Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

client.apps.currentGameLanguage() always returns 'english' #141

Closed
saintflow47 opened this issue Mar 15, 2024 · 3 comments
Closed

client.apps.currentGameLanguage() always returns 'english' #141

saintflow47 opened this issue Mar 15, 2024 · 3 comments

Comments

@saintflow47
Copy link

saintflow47 commented Mar 15, 2024

Hi there,
I wanted to tailor my language picking to the users steam language rather than the ip language. Even though multiple game languages are configured and available in the client.apps.availableGameLanguages() call, client.apps.currentGameLanguage() always returns english, no matter what i set my steam language to. the app itself does not have a language configuration in steam so it should be pulling the steam ui language according to https://partner.steamgames.com/doc/api/ISteamApps#GetCurrentGameLanguage.

availableGameLanguages returns (works perfectly)
[
'english',
'german',
'french',
'koreana',
'spanish',
'schinese',
'japanese'
]
currentGameLanguage returns
'english'

@ceifa
Copy link
Owner

ceifa commented Jun 14, 2024

All games have a language configuration on the new steam client. Maybe your steam UI was in english when the game was added to the library.
Tested here it is working fine as intended.

@ceifa ceifa closed this as completed Jun 14, 2024
@saintflow47
Copy link
Author

I tested it very thoroughly to be honest. Of course I could have made a mistake somewhere, but I would love to hear how other people fare with this.

@Jackson0ne
Copy link

Just to add to this, I've had reports of users experiencing this issue as well.

Steamworks docs state that it will first check the game's language (set via Library > Game > Properties... > General > Language). If this isn't set, it falls back to client language. If this also fails for some reason, it falls back to English as a default.

However, users have reported that even though their client is set to another language, achievement information is returned in English. I've created a custom fork of steamworks.js that also incorporates achievement names/descriptions, which shows the same behaviour.

When testing this myself, if I change the client language to anything other than English, the returned value is always English. But changing the individual game's language (via Properties... as above) will trigger a Steam download of the translations, and will subsequently return the correct translation in the selected language for that game.

However, the new Steam UI doesn't show a language setting for every game - especially older titles - so it will never localise the result for games that can't access this setting.

I don't know for sure, but I believe it may be that because each game's language defaults to English in the new Steam client, the client language check is never actually done - due to not needing to fallback, as a default value of English is always provided. So, I think the issue is with the logic in Steamworks itself, rather than steamworks.js, so not sure what could even be done here.

Hope it helps!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants