flathub / org.signal.Signal

https://flathub.org/apps/details/org.signal.Signal
59 stars 34 forks source link

Spell checking not obeying locale settings on Flatpak installation. #647

Closed kierun closed 2 months ago

kierun commented 2 months ago

Steps to reproduce

  1. Set flatpak config --user --set languages "en;fr"
  2. Run: flatpak run --user --filesystem=~/.XCompose:ro org.signal.Signal --use-tray-icon
  3. Enter English and French.
  4. French is not spell checked correctly.

Expected

Spell checking works in both English and French.

Actual

Only English is enabled, as is clearly shown in the logs.

Debug: Additionally, user gave: --use-tray-icon
Set Windows Application User Model ID (AUMID) { AUMID: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /app/Signal/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
SIGNAL_ENABLE_HTTP undefined
userData: /home/yg/.var/app/org.signal.Signal/config/Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
getLogger: Logger not yet initialized!
crashReporter: enabled
making app single instance
LaunchProcess: failed to execvp:
xdg-settings
LaunchProcess: failed to execvp:
xdg-settings
{"level":30,"time":"2024-04-23T07:57:00.121Z","msg":"crashReporter: enabled"}
{"level":30,"time":"2024-04-23T07:57:00.122Z","msg":"got fast localeOverride setting null"}
{"level":30,"time":"2024-04-23T07:57:00.122Z","msg":"app.ready: hour cycle preference: UnknownPreference"}
{"level":30,"time":"2024-04-23T07:57:00.122Z","msg":"app.ready: preferred system locales: en-GB, en"}
{"level":30,"time":"2024-04-23T07:57:00.122Z","msg":"locale: Supported locales: af-ZA, ar, az-AZ, bg-BG, bn-BD, bs-BA, ca, cs, da, de, el, en, es, et-EE, eu, fa-IR, fi, fr, ga-IE, gl-ES, gu-IN, he, hi-IN, hr-HR, hu, id, it, ja, ka-GE, kk-KZ, km-KH, kn-IN, ko,ky-KG, lt-LT, lv-LV, mk-MK, ml-IN, mr-IN, ms, my, nb, nl, pa-IN, pl, pt-BR, pt-PT, ro-RO, ru, sk-SK, sl-SI, sq-AL, sr, sv, sw, ta-IN,te-IN, th, tl-PH, tr, ug, uk-UA, ur, vi, yue, zh-CN, zh-HK, zh-Hant"}
{"level":30,"time":"2024-04-23T07:57:00.122Z","msg":"locale: Preferred locales: en-GB, en"}
{"level":30,"time":"2024-04-23T07:57:00.122Z","msg":"locale: Locale Override: null"}
{"level":30,"time":"2024-04-23T07:57:00.124Z","msg":"locale: Matched locale: en"}

And in the following screenshot:

screenshot

Notes

jamiebuilds-signal commented 2 months ago

We need more of the debuglog than this. The resolved "locale" is not the spellchecker setting. You'll see lines like this:

INFO  2024-04-09T11:48:17.376Z spellcheck: user locales: ["en-US"]
INFO  2024-04-09T11:48:17.376Z spellcheck: available spellchecker languages: ["af","bg","ca","cs","cy","da","de","de-DE","el","en","en-AU","en-CA","en-GB","en-GB-oxendict","en-US","es","es-419","es-AR","es-ES","es-MX","es-US","et","fa","fo","fr","fr-FR","he","hi","hr","hu","hy","id","it","it-IT","ko","lt","lv","nb","nl","pl","pt","pt-BR","pt-PT","ro","ru","sh","sk","sl","sq","sr","sv","ta","tg","tr","uk","vi"]
INFO  2024-04-09T11:48:17.376Z spellcheck: setting languages to: ["en-US"]
kierun commented 2 months ago

@jamiebuilds-signal

We need more of the debuglog than this.

This is all the log I have:

Debug: Will run signal with the following arguments:
Debug: Additionally, user gave: --use-tray-icon
Set Windows Application User Model ID (AUMID) { AUMID: 'org.whispersystems.signal-desktop' }
NODE_ENV production
NODE_CONFIG_DIR /app/Signal/resources/app.asar/config
NODE_CONFIG {}
ALLOW_CONFIG_MUTATIONS undefined
HOSTNAME undefined
NODE_APP_INSTANCE undefined
SUPPRESS_NO_CONFIG_WARNING undefined
SIGNAL_ENABLE_HTTP undefined
userData: /home/yg/.var/app/org.signal.Signal/config/Signal
config/get: Successfully read user config file
config/get: Successfully read ephemeral config file
getLogger: Logger not yet initialized!
crashReporter: enabled
making app single instance
LaunchProcess: failed to execvp:
xdg-settings
LaunchProcess: failed to execvp:
xdg-settings
{"level":30,"time":"2024-04-24T07:58:41.647Z","msg":"crashReporter: enabled"}
{"level":30,"time":"2024-04-24T07:58:41.648Z","msg":"got fast localeOverride setting null"}
{"level":30,"time":"2024-04-24T07:58:41.648Z","msg":"app.ready: hour cycle preference: UnknownPreference"}
{"level":30,"time":"2024-04-24T07:58:41.648Z","msg":"app.ready: preferred system locales: en-GB, en"}
{"level":30,"time":"2024-04-24T07:58:41.649Z","msg":"locale: Supported locales: af-ZA, ar, az-AZ, bg-BG, bn-BD, bs-BA, ca, cs, da, de, el, en, es, et-EE, eu, fa-IR, fi, fr, ga-IE, gl-ES, gu-IN, he, hi-IN, hr-HR, hu, id, it, ja, ka-GE, kk-KZ, km-KH, kn-IN, ko, ky-KG, lt-LT, lv-LV, mk-MK, ml-IN, mr-IN, ms, my, nb, nl, pa-IN, pl, pt-BR, pt-PT, ro-RO, ru, sk-SK, sl-SI, sq-AL, sr, sv, sw, ta-IN, te-IN, th, tl-PH, tr, ug, uk-UA, ur, vi, yue, zh-CN, zh-HK, zh-Hant"}
{"level":30,"time":"2024-04-24T07:58:41.649Z","msg":"locale: Preferred locales: en-GB, en"}
{"level":30,"time":"2024-04-24T07:58:41.649Z","msg":"locale: Locale Override: null"}
{"level":30,"time":"2024-04-24T07:58:41.650Z","msg":"locale: Matched locale: en"}
{"level":40,"time":"2024-04-24T07:58:41.679Z","msg":"intl.onWarn [@formatjs/intl] \"defaultRichTextElements\" was specified but \"message\" was not pre-compiled. \nPlease consider using \"@formatjs/cli\" to pre-compile your messages for performance.\nFor more details see https://formatjs.io/docs/getting-started/message-distribution"}
{"level":30,"time":"2024-04-24T07:58:41.679Z","msg":"locale: Text info direction for en: ltr"}
{"level":30,"time":"2024-04-24T07:58:41.679Z","msg":"getSystemTraySetting saw --use-tray-icon flag. Returning MinimizeToSystemTray"}
{"level":30,"time":"2024-04-24T07:58:41.680Z","msg":"app ready"}
{"level":30,"time":"2024-04-24T07:58:41.680Z","msg":"starting version 7.5.1"}
{"level":30,"time":"2024-04-24T07:58:41.681Z","msg":"media access status [object Undefined] [object Undefined]"}
{"level":30,"time":"2024-04-24T07:58:41.682Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2024-04-24T07:58:41.683Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2024-04-24T07:58:41.683Z","msg":"got fast spellcheck setting true"}
{"level":30,"time":"2024-04-24T07:58:41.684Z","msg":"Initializing BrowserWindow config: {\"show\":false,\"width\":824,\"height\":481,\"minWidth\":300,\"minHeight\":200,\"autoHideMenuBar\":true,\"titleBarStyle\":\"default\",\"backgroundColor\":\"#121212\",\"webPreferences\":{\"devTools\":false,\"spellcheck\":true,\"enableBlinkFeatures\":\"CSSPseudoDir,CSSLogical\",\"enablePreferredSizeMode\":true,\"nodeIntegration\":false,\"nodeIntegrationInWorker\":false,\"sandbox\":false,\"contextIsolation\":true,\"preload\":\"[REDACTED]/preload.bundle.js\",\"backgroundThrottling\":true,\"disableBlinkFeatures\":\"Accelerated2dCanvas,AcceleratedSmallCanvases\"},\"icon\":\"[REDACTED]/images/signal-logo-desktop-linux.png\",\"x\":0,\"y\":355}"}
{"level":30,"time":"2024-04-24T07:58:41.737Z","msg":"spellcheck: user locales: [\"en-GB\",\"en\"]"}
{"level":30,"time":"2024-04-24T07:58:41.737Z","msg":"spellcheck: available spellchecker languages: [\"af\",\"bg\",\"ca\",\"cs\",\"cy\",\"da\",\"de\",\"de-DE\",\"el\",\"en\",\"en-AU\",\"en-CA\",\"en-GB\",\"en-GB-oxendict\",\"en-US\",\"es\",\"es-419\",\"es-AR\",\"es-ES\",\"es-MX\",\"es-US\",\"et\",\"fa\",\"fo\",\"fr\",\"fr-FR\",\"he\",\"hi\",\"hr\",\"hu\",\"hy\",\"id\",\"it\",\"it-IT\",\"ko\",\"lt\",\"lv\",\"nb\",\"nl\",\"pl\",\"pt\",\"pt-BR\",\"pt-PT\",\"ro\",\"ru\",\"sh\",\"sk\",\"sl\",\"sq\",\"sr\",\"sv\",\"ta\",\"tg\",\"tr\",\"uk\",\"vi\"]"}
{"level":30,"time":"2024-04-24T07:58:41.737Z","msg":"spellcheck: setting languages to: [\"en-GB\",\"en\"]"}
{"level":30,"time":"2024-04-24T07:58:41.781Z","msg":"MainSQL: updateSchema:\n  Current user_version: 1010;\n  Most recent db schema: 1010;\n  SQLite version: 3.42.0;\n  SQLCipher version: 4.5.5 community;\n  (deprecated) schema_version: 440;\n"}
{"level":30,"time":"2024-04-24T07:58:42.096Z","msg":"got fast theme-setting value dark"}
{"level":30,"time":"2024-04-24T07:58:42.533Z","msg":"got fast spellcheck setting true"}
{"level":30,"time":"2024-04-24T07:58:42.542Z","msg":"System tray service: created"}
{"level":30,"time":"2024-04-24T07:58:42.542Z","msg":"System tray service: updating main window. Previously, there was not a window, and now there is"}
{"level":30,"time":"2024-04-24T07:58:42.542Z","msg":"System tray service: rendering no tray"}
{"level":30,"time":"2024-04-24T07:58:42.542Z","msg":"System tray service: enabling"}
{"level":30,"time":"2024-04-24T07:58:42.542Z","msg":"System tray service: rendering the tray"}
{"level":30,"time":"2024-04-24T07:58:42.543Z","msg":"System tray service: creating the tray"}
{"level":30,"time":"2024-04-24T07:58:42.544Z","msg":"Begin ensuring permissions"}
{"level":30,"time":"2024-04-24T07:58:42.545Z","msg":"main window is ready-to-show"}
{"level":30,"time":"2024-04-24T07:58:42.545Z","msg":"showing main window"}
{"level":30,"time":"2024-04-24T07:58:42.546Z","msg":"System tray service: rendering the tray"}
{"level":30,"time":"2024-04-24T07:58:42.587Z","msg":"Ensuring file permissions for 4 files"}
{"level":30,"time":"2024-04-24T07:58:42.588Z","msg":"Finish ensuring permissions in 44ms"}
{"level":30,"time":"2024-04-24T07:58:42.731Z","msg":"MainSQL: slow query getAllStories duration=51ms"}
{"level":30,"time":"2024-04-24T07:58:42.823Z","msg":"Prevent display sleep service: allowing display sleep"}
{"level":30,"time":"2024-04-24T07:58:42.823Z","msg":"Background throttling enabled because no call is active"}
{"level":30,"time":"2024-04-24T07:58:42.927Z","msg":"updater/start: Updates disabled - not starting new version checks"}
{"level":30,"time":"2024-04-24T07:58:42.928Z","msg":"App loaded - time: 1249"}
{"level":30,"time":"2024-04-24T07:58:42.929Z","msg":"SQL init - time: 138"}
{"level":30,"time":"2024-04-24T07:58:42.929Z","msg":"Preload - time: 431"}
{"level":30,"time":"2024-04-24T07:58:42.929Z","msg":"WebSocket connect - time: 395"}
{"level":30,"time":"2024-04-24T07:58:42.929Z","msg":"Processed count: 0"}
{"level":30,"time":"2024-04-24T07:58:42.929Z","msg":"Messages per second: 0"}
{"level":30,"time":"2024-04-24T07:58:43.105Z","msg":"Updating BrowserWindow config: %s {\"maximized\":false,\"autoHideMenuBar\":true,\"fullscreen\":false,\"width\":828,\"height\":484,\"x\":0,\"y\":355}"}
{"level":30,"time":"2024-04-24T07:58:43.107Z","msg":"config/set: Saving ephemeral config to disk"}
{"level":30,"time":"2024-04-24T07:58:43.115Z","msg":"config/set: Saved ephemeral config to disk"}

If you need more, can you please tell me how to get it?

The resolved "locale" is not the spellchecker setting. You'll see lines like this:

I can see that.

However, I am expecting that the command flatpak config --user --set languages "en;fr" would set the locales to both English and French so that the command flatpak run --user --filesystem=~/.XCompose:ro org.signal.Signal --use-tray-icon would pick those up.

That could well be the source of the problem. If so, what is the correct incantation?

kierun commented 2 months ago

I tried to experiment with more command tweaking:

flatpak config --user --set languages "en;fr"
flatpak run \
    override --env=LANGUAGE=en:fr \
    --user \
    --filesystem=~/.XCompose:ro \
    org.signal.Signal \
    --use-tray-icon \
    --lang=en,fr

What I get is still

{"level":30,"time":"2024-04-24T08:08:15.274Z","msg":"app.ready: preferred system locales: en-GB, en"}
{"level":30,"time":"2024-04-24T08:08:15.274Z","msg":"locale: Supported locales: af-ZA, ar, az-AZ, bg-BG, bn-BD, bs-BA, ca, cs, da, de, el, en, es, et-EE, eu, fa-IR, fi, fr, ga-IE, gl-ES, gu-IN, he, hi-IN, hr-HR, hu, id, it, ja, ka-GE, kk-KZ, km-KH, kn-IN, ko, ky-KG, lt-LT, lv-LV, mk-MK, ml-IN, mr-IN, ms, my, nb, nl, pa-IN, pl, pt-BR, pt-PT, ro-RO, ru, sk-SK, sl-SI, sq-AL, sr, sv, sw, ta-IN, te-IN, th, tl-PH, tr, ug, uk-UA, ur, vi, yue, zh-CN, zh-HK, zh-Hant"}
{"level":30,"time":"2024-04-24T08:08:15.274Z","msg":"locale: Preferred locales: en-GB, en"}
{"level":30,"time":"2024-04-24T08:08:15.274Z","msg":"locale: Locale Override: null"}
{"level":30,"time":"2024-04-24T08:08:15.276Z","msg":"locale: Matched locale: en"}
pm98zz-c commented 2 months ago

FWIW, I was able to get it to work by setting it globally:

❯ sudo flatpak override --env=LANGUAGE=en-GB:fr-FR org.signal.Signal

You can check if your installation is at the user or system level with:

❯ flatpak list | grep signal
Signal Foundation   org.signal.Signal   7.5.1   stable  flathub system
kierun commented 2 months ago

@pm98zz-c

FWIW, I was able to get it to work by setting it globally:

OMG! It needs sudo… Well, at least now it is working. Thank you :heart: