elementary / elementary/triage

Orca screen reader default language does not match user display language

Open
#878 0 comments 0 reactions 0 assignees View on GitHub
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_.

Screenshot of Language & Region showing English US selected as display language, and Brazil selected as the Formats locale

### 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_.

Screenshot of Orca Settings

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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.