It is not possible to change the language in the app itself, and by extension to have a specific language per conversation, but there is a feature request you can vote for in the community forums.
In the meantime the application will use the system language, but it is possible to start it with a different language.
Via the Operating System Language & Region settings
By default, Signal Desktop relies on the list defined in the Language & Region settings of the system, be it for Windows, Linux or Mac OS. The first language will be used for the UI. It is possible to override this in the Signal preferences.
On Linux, using the LANGUAGE variable
You need to set or override the LANGUAGE environment variable for signal-desktop. This variable is usually set via the Operating System Language & Region settings as mentioned above, but you can override it for Signal.
Note that, at least on Ubuntu, languages listed after “English” are not taken into account, so if you want to keep the OS in English but add the spell check for other languages, overriding the variable appears to be the only option.
Best is to create a custom signal-desktop.desktop shortcut in ~/.local/share/applications (this might be OS- or Desktop Environment-specific) so that it does not get overridden after every update.
Start by copying /usr/share/applications/signal-desktop.desktop to ~/.local/share/applications, then modify the Exec line to include your languages, e.g.,
Exec=env LANGUAGE=fr_BE.UTF-8:en_UK.UTF-8 /opt/Signal/signal-desktop --no-sandbox %U
You can put multiple languages separated by :. The first one is used for the UI, and all of them are used for spell checking.
Pro tip: add --use-tray-icon to keep Signal running when you close its window.
According to this post, Flatpack users can also set it like this (not checked):
flatpak override --user --env=LANGUAGE=en_US.UTF-8:nl_NL.UTF-8 org.signal.Signal