-
Notifications
You must be signed in to change notification settings - Fork 69
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
Some Games Require setting LC_ALL Variable for correct Language. Not possible due to stripped glibc package. #794
Comments
Hey, are you talking about Steam games or about games that you installed manually on the desktop? Do you have some examples? |
Patrician IV |
What version of this game are you running? The one from Steam fails with Edit: never mind, it worked on the third attempt |
From the Steam UI it certainly does ignore the language setting, how are you launching it to make it work in German? |
LC_ALL=de_DE.UTF-8 %command% does the trick for me. |
Another Example is a Non-Steam one. |
I note that even on systems that have a glibc install supporting all locales, these title still require manual workarounds to enable specific languages. |
In the case of Patrician IV setting the language from English to German downloads the German version of the game (>2GB) with all voices in German, but all messages on the screen, menus, etc, are still in English. |
The language of the messages is defined in If you install the German version of the game and never run the English version before then everything works as expected. The problem happens if you run the English version first and then switch to the German version. I would say that's a bug, and it can be worked around by removing (or editing) None of this requires changes to the available glibc locales as far as I can tell. |
Still. Is there an explicit Reason why all the Language files should be stripped? |
We believe this is possible already, and does not require the extra libc locale files. @bertogg has concluded that Pratician IV failing to switch to German is a game bug. Those typically need to be taken up with the game developer. We aggressively reduce the size of the OS partition by removing locales, man pages, etc. This is done to leave as much space as possible for game content. We understand this is not ideal for a desktop use case. Some of these decisions on what to include/exclude may change in the future, but in this particular case we do not see this being justified yet. |
The Game was one example fixable with other means. But that issue goes even further than games. |
I think there are two things here:
|
a large portion of visual novels depend on japanese locale to be able to run. not having japanese locale in steamos is cutting out a large portion of an entire genre of game from running. these are non-steam games, but all the same it would be really great to be able to run them. please consider adding japanese locale for visual novel support. there are a number of examples of people trying to attempt this and running into issues that require them to unlock steamos and hoping for the best. https://old.reddit.com/r/SteamDeck/comments/u77i9m/steam_deck_japanese_visual_novels_how_change/ a guide on youtube someone made about unlocking the steam deck to be able to play vns on the steam deck: |
Non-steam game or not, running these in a sniper SLR would be the better way forward in order to avoid switching the root OS to read/write. We are working on improving locale support but that has a lot of ramifications, no ETA. |
The Japanese locale can be enabled on the Deck without unlocking SteamOS. If the game's files only have ASCII characters: using For games that both require the Japanese locale in Proton + have Japanese filenames: ja_JP.UTF-8 locale files can be created on a full Linux install then copied to the Deck's user directory + using a custom launch script to overwrite (And for games that use non-English filenames but don't require changing Proton's locale: just Non-root solution at https://gist.github.com/cfillion/4394c3b8cd051fb45721187053e92296. |
I'm not from Valve and I don't decide what locales to support, I was just trying to understand the problem and give some technical context, but anyway:
This is unnecessary.
There are two things: compiling the locale definitions and actually having the translations installed. The translations are what takes most of the disk space and they come with each individual package. Also, note that the root filesystem is read-only. |
We can argue all day here. The fact is that SteamOS currently Gatekeeps the Desktop Mode and certain Games to English Speakers only, only to save a few Megabytes really not worth saving if it means that half of the Device is not usable at all to non Native English speakers. |
I am currently thinking about forking HoloISO and modifying it from its hardware universal approach back to a Steam Deck-specific Image. Just to give the users the Option to something Valve is unwilling to give. Their Native Language and an open file system. Like I said. I know a few people, mostly german, who were really excited about the prospect of a Portable PC with full Desktop access but canceled their order once they got to know that Desktop was English only. Due to the changes to the kernel not being upstreamed, we currently have only two real options. SteamOS with very Lacking International functionality, and Windows, which Drivers lack important functionality like DXVA2 while also having massive Installing Problems. (Bluescreen with no Boot after APU Driver install) Trying to run a different Distro on the Deck will give you a headache. So, our best chance currently is to build the solution we want ourselves from the Image we already have. Because I don't see something changing here anytime soon, to be honest. |
they have already acknowledged the problem and said they plan to address it. i don't know why you are acting like this is not the case. it will get done when it gets done. this is not the place to have a passive aggressive and disrespectful back and forth about it. it won't get it fixed any faster. in the mean time, unlike any other console that is currently produced, you can unlock root and fix it yourself until it gets pushed out officially if it is a serious problem for you. |
Steam Deck just launced in Asia and guess what? The desktop mode is STILL in English only. Also, it looks like some games (on Unity?) cannot display japanese language, for example RimWorld and Valheim, due to missing fonts I suppose. They both have "Verified" mark btw. |
Seems like user Experience still isn't a huge priority |
locale missing introduced a lot troubles for me and spends me almost a week to address them. There is multiple solutions imo:
|
Another Example for Software that does not work in other Languages is the Emulator PPSSPP in Flatpak form because Flatpak does not download the Locals if it's not set. |
This can be workaround by: flatpak config --set language "en;jp;fr" # change language code here, add --user if your flatpaked app is installed as user app
flatpak update # flatpak will download locales you set |
Thanks. |
does this work even without steamos itself having japanese locale enabled? |
Great. Desktop finally is usable and all the old games finally start in the right language. Thank you. |
It seems very weird that not all European Union countries are supported in this change (at least from the list above). It seems weird that Valve didn't add support for the countries the Deck is being sold at. |
Just for the record - see #816 (comment) why supporting multiple locales is important for Valve's revenue (from my understanding). @bertogg, many thanks for highlighting in #794 (comment) that Flatpak has an independent language setting but defaults to the system language. With main you mean the preview update channel which is built from the master branch, right? |
I mean the preview channel, yes. |
This is now available in SteamOS 3.5 preview (OS build 20230915.100) |
Updating the flatpak langauge no longer makes that language accessible for programs in the preview branch |
@superboo07 do you have an example of a Flatpak app where you cannot set the language? |
Let's do a recap on how to change the language settings in Flatpak in SteamOS 3.5. CASE 1: you want to change the language for the desktop and for all Flatpak apps.
After this, open a terminal and run This should be enough, all desktop and Flatpak apps will run using the locale that you have selected. CASE 2: you want to run a Flatpak app with a locale different from the system one.
NOTES Even if you select a certain locale when you run an app that doesn't mean that the app is going to show the messages in that language. It's up to the app to decide whether to show the messages based on the current locale or based on some other criteria. Example: PPSSPP uses the language that is defined in the configuration file,
|
Lutris, it used to work in a past update where adding the locale would allow setting prefixes made in it to use that locale. Now the locales don't show up at all |
you can manually set environment variables in lutris on a per app basis. it definitely works as i have done it personally. |
it can't use japanese locale without it being installed in flatpak, which used to work in the past but doesn't anymore. |
Still desperate for a fix, tried running the below command to check if it had installed the locale
Output revealed that it indeed hadn't, and I don't know where to go from here since I have added the japanese locale to my extra languages in flatpak |
I have at this point attempted everything I can, the only thing I can reasonably conclude is that something has been been broken between the switch from 3.4 to 3.5. A fix would be much enjoyed as this issue stops a multitude of software that would've once ran near perfectly from running at all. |
once again it definitely does work. i'm on steamos 3.5 right now playing japanese games with japanese locale in lutris. |
Could you post the output you recieve apon using the below command then please
|
|
What are the steps you took to install the japanese locale, I used the ones that were given above in this thread but they didn't work on 3.5 |
It's been a long time since i did it so i don't remember exactly. that said I use linux outside of the steam deck and these are the usual flatpak locale commands i run:
i'm sure that those commands are some combination of incorrect or redundant, but they have worked for me on my linux installs. someone else can probably fix them to make them how they should be. then inside of lutris or bottles i don't use the built in locale dropdowns i manually set the environment variables in the settings on a prefix by prefix basis. environment variables i use:
for what it's worth i didn't run any commands at all after upgrading to 3.5 because it never stopped working from before. |
# Check the existing configuration
$ flatpak config
languages: *unset* (default: en)
extra-languages: *unset*
# Add the Japanese locale
$ sudo flatpak config --set extra-languages "ja"
# Check the updated configuration
$ flatpak config
languages: *unset* (default: en;ja)
extra-languages: ja
# Download the localization files
$ sudo flatpak update |
these are the exact steps I took. I suppose there is a chance my install was bugged though. |
Maybe it keeps locales installed before 3.5, I suppose you could check if it'll install the german locales to lutris since it won't hurt to test. Though I'm thinking my 3.5 install might've been bugged |
Can you send me the output of these two commands?
|
When I was on 3.5 The output for flatpak config is:
The output for checking the flatpak locale is:
|
I had tried sudo in the past, it didn't make a difference in making it install the jp locale. The only thing it changed was how it asked for my sudo password, if I didn't specify sudo it would bring up a dialog box with a test input for me to put it in. |
Some Games Require that you pass
LANG= %command%
or
LC_ALL= %command%
To launch the Game in the Correct Language. Some Games Default to English because thats the set System Language.
Doing this is not possible because the installed glibc was stripped of all its Language Files.
Which is, in my opinion, a big no-go.
Attempting to enable a locale in /etc/locale.gen and running locale-gen results in:
This can only be fixed by reinstalling glibc via pacman.
The ability to set locales should be shipped in the stock Image. There is no reason why it shouldn't.
The text was updated successfully, but these errors were encountered: