fyne-io / fyne

Cross platform GUI toolkit in Go inspired by Material Design
https://fyne.io/
Other
24.78k stars 1.37k forks source link

Menu Quit appears twice when using Region#English on Window OS #5158

Open prifre opened 1 week ago

prifre commented 1 week ago

Checklist

Describe the bug

If I WANT english language and I do have an OS (Windows in my case) set to REGION="Sweden" I end up with TWO Quit menus... One Quit in an English OS and two Quit -> English "Quit" (mine) and a Swedish "Avsluta" on an non-English (Region #English) OS... The temporary solution is to remove the file https://github.com/fyne-io/fyne/tree/master/lang/translations/base.sv.json from fyne. Or set "Region" to English/UK, etc.

A suggested permanent solution would be to add a function to the lang package to be able to control what language the application is supposed to be using!!! Then I could even have a multilanguage-controlling menu! :-) Suggestion: lang.SetLanguage("en") or lang.SetLanguage("sv") etc...

How to reproduce

1) Go to (on Windows 11) Start->Settings->Time & language and set "Region" ->"Swedish" 2) add code that adds an "Quit" (english) menu. 3) You end up with 2 Quit...

Screenshots

No response

Example code

func BuildFileMenu(window fyne.Window) *fyne.Menu { // a quit item will be appended to our first menu mFile := fyne.NewMenu("File", fyne.NewMenuItem("Quit", func() { window.Close() os.Exit(1) }))

Fyne version

v2@2.5.1

Go compiler version

go1.22.1 windows/amd64

Operating system and version

Windows 11 Home with REGION set to "Sweden"

Additional Information

No response

andydotxyz commented 2 days ago

And what if you Localise that properly with fyne.NewMenuItem(lang.L("Quit"), ...)?