microsoft / PowerToys

Windows system utilities to maximize productivity
MIT License
111.9k stars 6.59k forks source link

Choose our own UI language #7670

Closed iamshilov closed 1 month ago

iamshilov commented 4 years ago

Thanks for localization, but can we have a choice?

htcfreek commented 4 years ago

You suggest what I think since a few weeks. šŸ˜‚

crutkas commented 4 years ago

This is based on your OS. We could have an override setting.

arjunbalgovind commented 4 years ago

@crutkas This would most likely be a big work item, since right now we are relying on the default behavior for all 3 platforms (.NET, C++ and UWP). We would need to add custom logic for loading the resources in all the projects (unless there are some convenient APIs for all the platforms to switch languages).

crutkas commented 4 years ago

for .net / winrt, there should be. The C++ stuff ... that could be more interesting. Great call out

NenoLoje commented 4 years ago

If we were to change the thread's culture early in the start-up phase, wouldn't that solve the issue?

htcfreek commented 4 years ago

If we were to change the thread's culture early in the start-up phase, wouldn't that solve the issue?

You mean with restart for lang change?

NenoLoje commented 4 years ago

You mean with restart for lang change?

Yes, that's right.

carlosmatioli commented 4 years ago

This "Choose Language" feature would help me in the issue presented in the picture attached. The translated sentence in pt-BR is beyond window limits, and I cannot change the properties.

image

enricogior commented 4 years ago

@carlosmatioli this issue is not about UI fixes for bugs caused by translation. The problem you reported has already been fixed an it will be available in the next release https://github.com/microsoft/PowerToys/pull/7689

I will delete your comment and mine to keep this thread on topic. Thank.

Jay-o-Way commented 4 years ago

This is really a good idea. Not only for personal use, but also handy when I want to make a screenshot to show on GitHub. My app is Dutch now and it would be better for other people when I can show something in English, or any language that fits. Plenty of apps can do this on the spot, so no restart of any kind should be necessary.

crutkas commented 4 years ago

I think it is a good idea, just hard. Why: the front end techs are not unified. We use MFC, WPF, Winforms, UWP/WinUI, and i think one more.

Each UI framework would have to have a different solution == extremely time consuming until we unify

crutkas commented 4 years ago

Will be much easier once everything is in the same stack.

erdostamasa commented 3 years ago

So are there plans to solve this in the future?

Jay-o-Way commented 3 years ago

We use MFC, WPF, Winforms, UWP/WinUI, and i think one more.

I still can't wrap my head around this. It's very confusing and (I suppose) can't be very efficient. In my head GIT always has been the abbreviation for Get It Together. Something Microsoft can't seem to grasp.

crutkas commented 3 years ago

@erdostamasa I can see doing the work but I donā€™t a clear reason for why they would want this to not be their OS choice. This is future work as well and requires other work items to be done first.

@Jay-o-Way we inherited tech techs from other OSS projects. If they use letā€™s say MFC, for us to migrate is a big undertaking. We know where we want to go (WinUI) but it is missing unpackaged support. So at this time it means we canā€™t migrate. Upgrading from UI stacks also can introduce a host of bugs so doing it multiple times doesnā€™t make much sense when we know in the short term, weā€™ll get to where we need to be.

Rather spend the dev cycles in other parts of code.

we are a small team with great community support. Things take time.

Jay-o-Way commented 3 years ago

Does that also apply to the whole Windows OS? The UX is an ugly mess. But I digress šŸ¤

crutkas commented 3 years ago

Jay, powertoys respects the OS language setting. This ask is to override that

NenoLoje commented 3 years ago

Jay, powertoys respects the OS language setting. This ask is to override that

@crutkas Hey Clint - what if we were to create a separate .exe file that would contain only the default (English) UI? Then customers could choose this one, or the current one (which defaults to the OS language setting)

@All - would that be sufficient?

Jay-o-Way commented 3 years ago

@NenoLoje Sorry, but that is not the way to achieve this.

crutkas commented 3 years ago

@NenoLoje we would not do that style solution, forcing language can be done but it is per UI framework and has other ramifications.

TLDR: Dragons be here so we need to be sure we're doing this correctly. Lots of testing and edge cases.

angelo-daumas commented 3 years ago

@erdostamasa I can see doing the work but I donā€™t a clear reason for why they would want this to not be their OS choice.

Windows Home (at least the OEM's I've used) does not allow you to change language. So unless I get a Pro upgrade, I'd have to buy a laptop outside of my own country in order for my OS to not be in my country's language. However, I'd prefer to have everything in English, as localization just makes it harder to diagnose issues or follow tutorials.

crutkas commented 3 years ago

@angelo-daumas this is for just powertoys only.

angelo-daumas commented 3 years ago

What I mean is, the reason users would want their language to not match their OS's is because Windows does not allow (millions?) of users to change their OS language settings. So it's nice if applications allow the user to choose their language instead of relying on the OS language, which is forced upon the user in these cases (Windows 10 Single Language).

Jay-o-Way commented 2 years ago

Just found this (havent tried it myself) https://stackoverflow.com/questions/43116295/toggleswitch-default-oncontent-offcontent-text-does-not-get-translated-at-runtim

ThisFunctionalTom commented 2 years ago

How does this actually work? I have the display language in windows set to english and in windows it works but PowerToys shows the UI in german. Why? What setting do I have to change to get PowerToys shown in english? image

Jay-o-Way commented 2 years ago

https://docs.microsoft.com/en-us/windows/uwp/app-resources/localize-strings-ui-manifest#load-a-string-for-a-specific-language-or-other-context

crutkas commented 2 years ago

@jay-o-way lots of surfaces and UX techs, this is a larger work item

haldi4803 commented 2 years ago

This is based on your OS. We could have an override setting.

YES PLEASE! Override Language would be an awesome feature.

FDMS commented 2 years ago

How does this actually work? I have the display language in windows set to english and in windows it works but PowerToys shows the UI in german. Why? What setting do I have to change to get PowerToys shown in english? image

Sorry to pile on, but I was wondering exactly the same? What OS lang setting exactly is being used here?

image

NenoLoje commented 2 years ago

@Jay-o-Way lots of surfaces and UX techs, this is a larger work item

Let's take small steps. Even if it's just a few dialogs that support language override, that's already WAY better than the current state. We could have this behind a feature flag/configuration setting until it's good enough for widespread adoption.

Nicolas-GE commented 2 years ago

i want this now!!! for some reason my windows key was a french one so powertoys is in french for me EVEN after my hardest attempt at removing every french setting, my system is in swiss english, my keyboard is in english, every setting i could find is in english

please, just use the current user's display language

Nicolas-GE commented 2 years ago

i think i've found a "workaround" for pepole like me who can't bear their "default" language and want to completely change to a different one

it's in windows settingsā†’time&languageā†’languageā†’Administrative language settingsā†’copy settings

then, after making sure that the "current user" display language is in the language you want, copy to both welcome screen and new user accounts

this is not a solution as the app should have a way to choose languages in the first place, but this should change the language powertoys uses (at least it fixed it for me)

htcfreek commented 2 years ago

i think i've found a "workaround" for pepole like me who can't bear their "default" language and want to completely change to a different one

it's in windows settingsā†’time&languageā†’languageā†’Administrative language settingsā†’copy settings

then, after making sure that the "current user" display language is in the language you want, copy to both welcome screen and new user accounts

this is not a solution as the app should have a way to choose languages in the first place, but this should change the language powertoys uses (at least it fixed it for me)

This is strange. I would expect that PT uses the language settings from the logged on profile and not the one from login screen or default user profile. šŸ¤”

@crutkas What do you think? Might be something we should investigate.

Jay-o-Way commented 2 years ago

PowerToys should just follow the "Apps and websites" bit, because... Well, obviously.

porkopek commented 2 years ago

For me, it worked changing this setting. Previously, it was in Spanish, now it's in English.

image

CfYz-R commented 2 years ago

Would be nice to have such feature indeed. Without changing whole Windows language.

xiaolangGT commented 2 years ago

You can use built-in voice packs or Google Translate apis to assist translation

ghost commented 2 years ago

Two years and still nothing.

crutkas commented 2 years ago

@gabriel-roda this is a massive work item.

haldi4803 commented 2 years ago

Wouldn't there be a quick and dirty spoof that misreads the system Language?

crutkas commented 2 years ago

isn't that easy. We have 12 utilities and needs deep integration with settings and we have a bunch of different UX frameworks :)

montw-dev commented 2 years ago

Wouldn't there be a quick and dirty spoof that misreads the system Language?

This could be a temporary solution

ThiagoCururu commented 2 years ago

Ok so I just created another issue #19906 and then @Jay-o-Way kindly pointed me here, and I'll comment just to be another user boggled by such design choice, I guess? I have zero knowledge on programming, but I see that since this app already chooses a language based on SOMETHING, how hard could it be to set a list to override it and let the USER be a part of its decision? Why would something related to LANGUAGE be based on REGION? Am I a piece of land?

Sorry for the ranty tone, it's obviously not the first time this happened.

montw-dev commented 2 years ago

Ok so I just created another issue #19906 and then @Jay-o-Way kindly pointed me here, and I'll comment just to be another user boggled by such design choice, I guess? I have zero knowledge on programming, but I see that since this app already chooses a language based on SOMETHING, how hard could it be to set a list to override it and let the USER be a part of its decision? Why would something related to LANGUAGE be based on REGION?

Lots of UX frameworks are used, making it way harder. But, as pointed out by @haldi4803, it should be possible to intentionally misread the user's language. But that, even if possible, should only be a temporary solution.

crutkas commented 2 years ago

@ThiagoCururu: Can we override the default? Best of my knowledge we should be able to do it. It is just work and PowerToys deals with multiple different UX frameworks which means multiple implementations beyond just normal implementation work. plus testing

S0und commented 2 years ago

To add @porkopek 's commend https://github.com/microsoft/PowerToys/issues/7670#issuecomment-1152837029 , you should change your default keyboard language:

image

If you keep it on "Use language list (recommended)", it will select English as the default keyboard language every time Windows boots up.

aisbergde commented 2 years ago

The documentation is often in English. Many comments or answers to questions are in English. To make better use of them, it should be possible to force English no matter what the system language is. This affects many programs that I set to English right away. Something like this should also be possible with PowerToys. Is this really such an exotic feature?

Korb commented 2 years ago

Is this really such an exotic feature?

This is not an exotic feature. This is a fundamental misunderstanding of those for whom English is their native language - the world of people, for whom some other language is their native language. We live on different planets, or in parallel realities. For them, the world is an English-speaking world with optional additions in the form of other languages. For us, the world is truly multilingual, where English is important, but only as one of a huge number of other languages. This manifests itself in everything, including studying software, searching for information on the Internet, creating screenshots for bug reports, searching for communities of interest, and thousands of other daily activities.

Sorry if I didn't express myself correctly, English is not my native language.

crutkas commented 2 years ago

it isn't exotic, it just isn't easy due to the nature of what PowerToys is and built. We support multiple languages and ship with multiple languages (believe 13 total). We default to the language of Windows is set to. Having to override that means we have to override the UX framework and PowerToys has multiple frameworks we deal with. Each utility is actually a different exe typically.

PowerToys is built by a team that is across the entire world and the community is as well that helps. We understand the pain.

This is a big work item and are fully aware of the interest.

Jay-o-Way commented 2 years ago

https://learn.microsoft.com/previous-versions/windows/apps/hh965323(v=win.10)#loading-strings-for-a-specific-language-or-context