Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emojis not reported with eSpeak Portuguese (Portugal) #14434

Open
CyrilleB79 opened this issue Dec 10, 2022 · 5 comments
Open

Emojis not reported with eSpeak Portuguese (Portugal) #14434

CyrilleB79 opened this issue Dec 10, 2022 · 5 comments
Labels
component/i18n existing localisations or internationalisation needs-technical-investigation A technical investigation is required to progress the issue. p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.

Comments

@CyrilleB79
Copy link
Collaborator

CyrilleB79 commented Dec 10, 2022

Note: issue found while developing #14433.

Steps to reproduce:

  • Ensure in Speech settings that Emojis are reported and that "Trust voice's language when processing characters and symbols" is enabled
  • Set eSpeak with voice Portuguese (Portugal)
  • Read the following symbol by character: "☺"

Actual behavior:

NVDA reports "smiling face" with Portuguese accent.

Expected behavior:

NVDA should report it in Portuguese, i.e. "cara a sorrir"

Technical

  • eSpeak uses 'pt' language code for "Portuguese (Portugal)" voice. However, NVDA has no locale folder named "pt"; it only has "pt_BR" and "pt_PT". Thus it does not find pt CLDR file (nor pt_PT) and thus falls back to English.
  • Afrikaans has the same issue: eSpeak uses 'af' and NVDA uses 'af_ZA'; however it is also impacted by Do not ignore locale CLDR file when locale symbol file is missing #14433 (symbol file missing); thus the reason why NVDA reports English Emojis with eSpeak Afrikaans is double.

NVDA logs, crash dumps and other attachments:

N/A

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

2022.4beta3

Windows version:

Windows 10 2004 (x64) build 19041.388

Name and version of other software in use when reproducing the issue:

N/A

Other information about your system:

N/A

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

Not tested but this is surely something old.

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Not tested; unrelated.

@ruifontes
Copy link
Contributor

Cyrylle, some notes:
1 - "rosto sorridente" is the expression for brazilian portugues, pt_BR;
2 - "cara a sorrir" is the portuguese, pt_PT, expression;
3 - eSpeak only announces "smiling face" if you have checked "Trust voice's language when processing characters and symbols";
4 - This happen because eSpeake do not vonsidere portuguese the synth language.

@CyrilleB79
Copy link
Collaborator Author

Hi Rui

Thanks for these corrections and precisions. I have modified the initial description of this issue to take into account notes 2 and 3.

4 - This happen because eSpeake do not vonsidere portuguese the synth language.

Actually this rather happens because eSpeak considers 'pt' as the code for Portuguese (Portugal), whereas NVDA uses 'pt_PT' for this language.

@CyrilleB79
Copy link
Collaborator Author

Note:
For Afrikaans, the solution seems quite simple.
From what I know, South Afrika (ZA) is the main country speaking this language. Thus it would make sense in NVDA to replace locale 'af_ZA' by 'af' (without country code).
@josephsl, I guess you were the one who added af_ZA language at the time a translator showed up. Is there any reason why 'af_ZA' was used instead of 'af'? Do you see any drawback to change 'af_ZA' to 'af' to conform what is done for the majority of other languages in NVDA, i.e. use only language code and use country code only for countries not representing the majority of users of this language.

For pt_BR and pt_PT, I guess it's less obvious since Brasilians are more numerous than Portuguese people. But maybe Portuguese from Portugal (or like) is also spoken in other countries?

@ruifontes
Copy link
Contributor

We have several countries speaking portuguese:
Angola, Brasil, Cabo Verde, Guiné Bissau, Macau, Moçambique, Portugal, São Tomé e Príncipe e Timor Leste.
For me, it will be better to copy pt_PT to pt.

@seanbudd seanbudd added component/i18n existing localisations or internationalisation p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. needs-technical-investigation A technical investigation is required to progress the issue. labels Dec 13, 2022
@seanbudd
Copy link
Member

It seems that NVDA is not correctly creating aliases for language codes without locales.
The CLDR repo used to generate NVDA's CLDR data, should provide this information as language codes like 'pt' are supported by CLDR.
https://cldr.unicode.org/translation/translation-guide-general/default-content

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/i18n existing localisations or internationalisation needs-technical-investigation A technical investigation is required to progress the issue. p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

No branches or pull requests

3 participants