Matoking / protontricks

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
GNU General Public License v3.0
1.61k stars 34 forks source link

Prefix menu not opening #188

Closed Romz24 closed 1 year ago

Romz24 commented 1 year ago

Describe the bug When I change the system language which is different from English, the prefix menu does not open.

I noticed that a similar error appears not only for me, at least here is the same thing: https://github.com/Matoking/protontricks/issues/186#issuecomment-1331144016

To Reproduce

  1. Go to SteamOS
  2. Go to settings and change the language to Ukrainian
  3. Go back to your desktop
  4. Launch the protontricks app
  5. Try to open any prefix. The app will just close and nothing else will happen.

Expected behavior I want the application to work correctly in other languages

System (please complete the following information):

Additional context I tried to run the application through the console to see the errors, the result is in the screenshot.

Screenshot_20221204_134837

protontricks.txt

Matoking commented 1 year ago

This looks like a duplicate of #186. The user was able to solve the issue by setting the regional settings back to En-US.

I haven't investigated this issue thoroughly yet, but it might be related to how SteamOS 3 handles locales.

Romz24 commented 1 year ago

The user was able to solve the issue by setting the regional settings back to En-US.

Yes, this fixes the issue. But I want to use Ukrainian language instead of English. I have to change the language every time to use your program, it's very inconvenient.

Matoking commented 1 year ago

I've looked into the issue some more, and it might be because SteamOS 3 does not provide the necessary files for locales besides en_US.UTF-8, which is what SteamOS 3 uses by default.

To confirm that, could you run the following commands while your locale is Ukrainian and print the results?

locale
locale -a

For comparison's sake, on my Arch install, it results in the following:

$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

$ locale -a
locale -a
C
C.UTF-8
en_GB.utf8
en_US
en_US.iso88591
en_US.utf8
fi_FI.utf8
POSIX
Romz24 commented 1 year ago
(deck@STEAMDECK ~)$ locale -a
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
POSIX
en_US.utf8
(deck@STEAMDECK ~)$ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=uk_UA.UTF-8
LC_TIME=uk_UA.UTF-8
LC_COLLATE=uk_UA.UTF-8
LC_MONETARY=uk_UA.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=uk_UA.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
(deck@STEAMDECK ~)$
Matoking commented 1 year ago

I've created a test build with a potential fix. You can install it by running the following command:

flatpak install --user https://dl.flathub.org/build-repo/125371/com.github.Matoking.protontricks.flatpakref

Protontricks should then launch normally, although some UI text might be missing translations. Please check if it works.


To be more precise, Protontricks should reset the locale to en_US.UTF-8 if a locale is configured but it doesn't have the corresponding locale files. Applications such as Zenity will crash if they're missing.

You could also generate them yourself as some Steam Deck users have done for games and apps that require it. However, that solution requires removing the read-only mode from filesystem and it can be a hassle to keep it working. Ideally, this issue would be solved by Valve.

In either case, if the locales are generated properly, some UI text should then appear in the correct language if the translation exists.

Matoking commented 1 year ago

I've pushed a fix to master, and it will be included proper in a future release. This should fix the issue going by the same problem and solution appearing for other applications on Steam Deck. The issue can be reopened if that's not the case, however.