Add per room spell check language MSC
parent
35277ff041
commit
3eb383c120
@ -0,0 +1,42 @@
|
||||
# MSC3225: Per Room Spellcheck Language
|
||||
|
||||
It is common for people on the Internet to talk in more than one language. English will probably be
|
||||
the most used one, but for many it is not their mother tongue and they will use the latter as well.
|
||||
|
||||
Clients can offer spell checking functionality, but in order to provide helpful suggestions they need
|
||||
to know which language the user is currently writing in. When spell checking is available, the language
|
||||
can usually be selected e.g. via the right click menu, but it becomes tedious when one switches back and
|
||||
forth between two or more of them.
|
||||
|
||||
This proposal aims at providing users with a way to set a language per room, so that switching between
|
||||
conversations held in different languages automatically switches to the appropriate dictionary.
|
||||
|
||||
|
||||
## Proposal
|
||||
|
||||
Clients offering spell checking should default their dictionary to the system language. They should offer
|
||||
a way to change it and when the user sets a specific language, then they should store the language code
|
||||
as `m.input_language` account data for the room where it was set. Language codes must be
|
||||
[RFC3066](https://datatracker.ietf.org/doc/html/rfc3066) compliant.
|
||||
|
||||
|
||||
## Alternatives
|
||||
|
||||
The language could be defined as a room property: a room administrator could set it once and then every
|
||||
member would get it for free. However, not everyone in a given room necessarily talks in the same language
|
||||
(or even language variant, e.g. en_US vs en_GB) and there would need to be a way for users to override the
|
||||
room property. This MSC could be used as a mechanism to do said override, if such a room property were ever
|
||||
defined. Adding a room property requires more work and thought, and can be done in another MSC. It is thus
|
||||
considered out of scope for this one.
|
||||
|
||||
The feature can also work without actually adding it to the Matrix specification. There is indeed already
|
||||
one existing implementation (see [Unstable prefix](#unstable-prefix) below). Standardising the account data
|
||||
type though has the benefit that it is not client specific anymore, and the setting can be more easily reused
|
||||
by any number of clients.
|
||||
|
||||
|
||||
## Unstable prefix
|
||||
|
||||
Fractal already successfully offers this proposed feature. It stores the language code under the
|
||||
`org.gnome.fractal.language` account data type. This was released on the stable channel as part of
|
||||
Fractal 4.4 on August 7th 2020.
|
Loading…
Reference in New Issue