elementary / elementary/triage
Orca screen reader default language does not match user display language
- Dominant language
- No language data
- Stars
- 4
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
### What Happened?
After a fresh install of elementary 8 with English US as the default display language, Orca starts speaking Portuguese (my native language) instead. The screen reader pronunciation is terrible, as it attempts to read English sentences with a Portuguese voice; it even pronounces certain characters such as a colon as "dois pontos" and a dot as "ponto".
At no point I have selected Portuguese for this system. Everything is displayed in English, and have been since it was installed. However, I do have locale formats set to Portuguese, as you can see below in the output of `locale`.
```
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE=pt_BR.UTF-8
LC_NUMERIC=pt_BR.UTF-8
LC_TIME=pt_BR.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=pt_BR.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
LC_ADDRESS=pt_BR.UTF-8
LC_TELEPHONE=pt_BR.UTF-8
LC_MEASUREMENT=pt_BR.UTF-8
LC_IDENTIFICATION=pt_BR.UTF-8
LC_ALL=
```
To set the formats, I went to _System Settings_, _Language & Region_.
### Steps to Reproduce
1. Install elementary 8 and choose English US as the display language during installation and then during the initial setup for your user.
2. While configuring my user through the System Settings app, I chose _Brazil_ as the formats locale, while leaving English as display language. Not sure if that matters.
3. Start the screen reader through the Quick Settings menu on the panel.
### Expected Behavior
The Orca settings window (`orca -s`) shows _Language_ set to _en-US_.
Initially, the configuration file at `~/.local/share/orca/user-settings.conf` will not contain any language definition (create a new user to test this). I'd guess that it's picking a default somehow.
Luckily, I have found a way to fix the problem.
1. Set language to anything else. I chose Brazilian Portuguese (_pt-BR_).
2. Revert to English US (_en-US_). It should now speak English, as expected.
After this procedure is done, the _profiles_ section will be updated with a _voices_ entry that specifies the selected language:
```json
"profiles": {
"default": {
"speechServerFactory": "orca.speechdispatcherfactory",
"speechServerInfo": [
"Default Synthesizer",
"default"
],
"voices": {
"default": {
"established": true,
"family": {
"name": "default default voice",
"lang": "en",
"dialect": "US",
"variant": null
}
},
```
### OS Version
8.x (Circe)
### OS Architecture
amd64 (on most hardwares)
### Session Type
Secure Session (Wayland)
### Software Version
Latest release (I have run all updates)
### Log Output
```shell
```
### Hardware Info
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.