|
Bugzilla – Full Text Bug Listing |
| Summary: | Separate language from locale during the installation | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE Tumbleweed | Reporter: | Martin Gustafsson <martin.n.gustafsson> |
| Component: | Installation | Assignee: | E-mail List <yast2-maintainers> |
| Status: | RESOLVED UPSTREAM | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Enhancement | ||
| Priority: | P5 - None | CC: | lubos.kocman, mrmazda |
| Version: | Slowroll | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | openSUSE Tumbleweed | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
|
Description
Martin Gustafsson
2024-07-18 10:42:20 UTC
EDIT: I don't remember if I used yast of KDE to swicth language the first time when my keyboard stopped working. The second time I used the language settings in KDE which worked, but messed up my Desktoip shortcuts and set a locale which is not available. Now I have this: LANG=en_DK.UTF-8 LC_CTYPE="en_DK.UTF-8" LC_NUMERIC=en_SE.UTF-8 LC_TIME=en_SE.UTF-8 LC_COLLATE="en_DK.UTF-8" LC_MONETARY=en_SE.UTF-8 LC_MESSAGES="en_DK.UTF-8" LC_PAPER="en_DK.UTF-8" LC_NAME="en_DK.UTF-8" LC_ADDRESS="en_DK.UTF-8" LC_TELEPHONE="en_DK.UTF-8" LC_MEASUREMENT="en_DK.UTF-8" LC_IDENTIFICATION="en_DK.UTF-8" LC_ALL= To generate en_SE in openSUSE, I followed this: https://www.linuxquestions.org/questions/linux-desktop-74/i-want-to-install-the-locale-en_se-on-opensuse-15-1-a-4175661655/ This is a well-known problem, but not one that YaST can fix. We developers are all in the same boat: We need to use English to communicate with people all over the world, but that does not mean that we also want to endure those insane US date (Aug 7, 2027 - WTF?) or time (AM / PM - WTF?) formats (or, heaven forbid, those medieval units that only 3 countries on this planet are still using: USA, Myanmar, Liberia). So sadly, we are left with setting up our locale environment with all those environment variables. I have: % locale LANG=en_US.utf8 LC_CTYPE="en_US.utf8" LC_NUMERIC=en_US.utf8 LC_TIME=de_DE.utf8 LC_COLLATE=de_DE.utf8 LC_MONETARY=de_DE.utf8 LC_MESSAGES=en_US.utf8 LC_PAPER=de_DE.utf8 LC_NAME=de_DE.utf8 LC_ADDRESS=de_DE.utf8 LC_TELEPHONE=de_DE.utf8 LC_MEASUREMENT=de_DE.utf8 LC_IDENTIFICATION=de_DE.utf8 LC_ALL= ...which I all set in my shell startup files (~/.zshrc in my case). That sucks, but there is no reasonable solution in sight. Even worse, each and every desktop contributes by overriding some or all of it, and if you happen to click in the login manager, you may find yourself with a ~/.dmrc that overrides the override. Or with a ~/.pam_environment file that also kills your carefully hand-crafted defaults. I wish I had better news for you, but this is a mess that will only become messier the more subsystems are involved. Since YaST can by definition only modify system defaults, even if we would start doing our own thing here, all the other subsystems would come after us and override whatever we do: After reading and applying values from, say, /etc/sysconfig/locale, the login manager would throw its interpretation of what is probably good for you in the ring, then maybe ~/.pam_environment, then the plethora of files that the desktops and everybody else keep writing to ~/.config/whatever/wherever (and the order in which they are evaluated may vary from week to week). And that would be what you'd get whenever you start a program from your desktop's menus or from an icon on the desktop. If you start a shell window, of course, that will use your values from ~/.bashrc (or ~/.profile or ~/.login; depending on whether or not it's a login shell) and override the overridden values once more. As I wrote, it's a mess. YaST can't sort that out. Sorry. I know it's highly unsatisfactory, but this needs fixing somewhere higher up in the food chain (X Desktop Group as an organization above the desktops?). Also please consider the various applets of your desktop that override things like the keyboard layout. I lost count how many times I screamed at my screen because one of them believed it knew better than what I explicitly selected, and of course it always takes time to find where and how to restore the value that I really want. Thanks for your reply. The possibility to chose a non-US variant of English (en_DK, en_CAN, en_SE + maybe some more) in case English is selected would satisfiy a vast majority on non-US users I think. Or is it more difficult? There /are/ US users besides me who want better too. iso8600 as default regardless of locale would be nothing but win for everyone. Every day has 24 discrete hours of 60 minutes of 60 seconds each. So worldwide should clocks. Inches and feet had their uses, but the economy has been global for well over a century. Every measurement should default to simple-to-understand metric and decimal points. Make it so those who wish to be different have to do the extra work, rather than those who appreciate universally sensible standards. |