8000 [pull] master from nvaccess:master by pull[bot] · Pull Request #85 · AKJUS/nvda · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[pull] master from nvaccess:master #85

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

Open
wants to merge 170 commits into
base: master
Choose a base branch
from
Open

Conversation

pull[bot]
Copy link
@pull pull bot commented Mar 27, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

NVDA translation automation and others added 30 commits October 11, 2024 00:01
From translation svn revision: 83957

Authors:
Fatma Mehanna <fatma.mehanna@gmail.com>
Shaimaa Ibrahim <shamse1@gmail.com>
Abdelkrim Bensaid <abdelkrim.bensaid@free.fr>
Omar Alojaimi <amrahmad1995@gmail.com>

Stats:
1717	588	user_docs/ar/changes.md
12	3	user_docs/ar/userGuide.md
 2 files changed, 1729 insertions(+), 591 deletions(-)
From translation svn revision: 83957

Authors:
Zahari Yurukov <zahari.yurukov@gmail.com>
Kostadin Kolev <k.kolev1985@gmail.com>

Stats:
341	316	user_docs/bg/changes.md
 1 file changed, 341 insertions(+), 316 deletions(-)
From translation svn revision: 83957

Authors:
Daniel K. Gartmann <kontakt@nvda.dk>
Nicolai Svendsen <chojiro1990@gmail.com>
bue@vester-andersen.dk

Stats:
4868	3	user_docs/da/changes.md
 1 file changed, 4868 insertions(+), 3 deletions(-)
From translation svn revision: 83957

Authors:
Ali Aslani <aslani.ali@gmail.com>
Mohammadreza Rashad <mohammadreza5712@gmail.com>

Stats:
2537	357	user_docs/fa/changes.md
 1 file changed, 2537 insertions(+), 357 deletions(-)
From translation svn revision: 83957

Authors:
Jani Kinnunen <janikinnunen340@gmail.com>
Isak Sand <isak.sand@gmail.com>

Stats:
1064	216	user_docs/fi/changes.md
 1 file changed, 1064 insertions(+), 216 deletions(-)
From translation svn revision: 83957

Authors:
Hrvoje Katic <hrvojekatic@gmail.com>
Zvonimir Stanecic <zvonimirek222@yandex.com>
Milo Ivir <mail@milotype.de>
Dejana Rakic <dejana.rakic.2@gmail.com>

Stats:
3572	1155	user_docs/hr/changes.md
 1 file changed, 3572 insertions(+), 1155 deletions(-)
From translation svn revision: 83957

Authors:
Simone Dal Maso <simone.dalmaso@gmail.com>
Alberto Buffolino <a.buffolino@gmail.com>

Stats:
181	72	user_docs/it/changes.md
 1 file changed, 181 insertions(+), 72 deletions(-)
From translation svn revision: 83957

Authors:
Takuya Nishimoto <nishimotz@gmail.com>
Minako Nonogaki <minakonono3519@gmail.com>

Stats:
89	5	user_docs/ja/changes.md
 1 file changed, 89 insertions(+), 5 deletions(-)
From translation svn revision: 83957

Authors:
Bram Duvigneau <bram@bramd.nl>
Bart Simons <bart@bartsimons.be>
A Campen <a.campen@wxs.nl>
Leonard de Ruijter <alderuijter@gmail.com>

Stats:
2871	103	user_docs/nl/changes.md
103	106	user_docs/nl/userGuide.md
 2 files changed, 2974 insertions(+), 209 deletions(-)
From translation svn revision: 83957

Authors:
Patryk Faliszewski <patric3031@wp.pl>
Zvonimir Stanecic <zvonimirek222@yandex.com>
Dorota Krac <dorkakrac@yandex.com>
Piotr Rakowski <kontakt@piotrrakowski.net>
Hubert Meyer <hubmeyer1989@gmail.com>
Arkadiusz Swietnicki <nuno69a@gmail.com>

Stats:
3594	1981	user_docs/pl/changes.md
 1 file changed, 3594 insertions(+), 1981 deletions(-)
From translation svn revision: 83957

Authors:
Cleverson Casarin Uliana <nvdasrt@clul.router5.com>
Marlin Rodrigues <marlincgrodrigues@yahoo.com.br>
Tiago Melo Casal <tcasal@intervox.nce.ufrj.br>
Lucas Antonio <lucasantoniocwb@gmail.com>

Stats:
138	80	user_docs/pt_BR/changes.md
1	1	user_docs/pt_BR/userGuide.md
 2 files changed, 139 insertions(+), 81 deletions(-)
From translation svn revision: 83957

Authors:
Diogo Costa <diogojoca@gmail.com>
Rui Batista <ruiandrebatista@gmail.com>
Rui Fontes <rui.fontes@tiflotecnia.com>
Ângelo Abrantes <ampa4374@gmail.com>

Stats:
3067	3264	user_docs/pt_PT/changes.md
 1 file changed, 3067 insertions(+), 3264 deletions(-)
From translation svn revision: 83957

Authors:
Zvonimir Stanecic <zvonimirek222@yandex.com>
Aleksandr Lin'kov <kvark128@yandex.ru>

Stats:
10	10	user_docs/ru/changes.md
85	85	user_docs/ru/userGuide.md
 2 files changed, 95 insertions(+), 95 deletions(-)
From translation svn revision: 83957

Authors:
Ondrej Rosik <ondrej.rosik@gmail.com>
Peter Vagner <peter.v@datagate.sk>
Jan Kulik <jan.kulik.szsle@outlook.sk>

Stats:
1200	131	user_docs/sk/changes.md
 1 file changed, 1200 insertions(+), 131 deletions(-)
From translation svn revision: 83957

Authors:
Dinakar T.D. <td.dinkar@gmail.com>

Stats:
376	565	user_docs/ta/userGuide.md
 1 file changed, 376 insertions(+), 565 deletions(-)
From translation svn revision: 83957
From translation svn revision: 83977

Authors:
Dan Pungă <dan.punga@gmail.com>
Florian Ionașcu <contact@florian-ionascu.ro>
Alexandru Matei <alexandrumateistelian@gmail.com>
Nicuşor Untilă <nicusoruntila@yahoo.com>
Adriani Ionuț Botez <ionutz_tero@yahoo.com>
Dragoș Grecianu <grecianu.dragos@gmail.com>
Daniela Popovici <vlajna95@gmail.com>
George Antonio Andrei <george.andrei2002@gmail.com>
Mădălin Grădinaru <madalingradinaru@gmail.com>

Stats:
3	0	user_docs/ro/userGuide.md
 1 file changed, 3 insertions(+)
From translation svn revision: 83977

Authors:
wangjanli@gmail.com
maro.zhang@gmail.com
Aaron Wu <waaron2000@gmail.com>
Victor Cai <surfer0627@gmail.com>
haach111000@gmail.com

Stats:
2	2	source/locale/zh_TW/characterDescriptions.dic
 1 file changed, 2 insertions(+), 2 deletions(-)
From translation svn revision: 83977
From translation svn revision: 83985

Authors:
wangjanli@gmail.com
maro.zhang@gmail.com
Aaron Wu <waaron2000@gmail.com>
Victor Cai <surfer0627@gmail.com>
haach111000@gmail.com

Stats:
3	3	source/locale/zh_TW/characterDescriptions.dic
 1 file changed, 3 insertions(+), 3 deletions(-)
From translation svn revision: 83985
From translation svn revision: 84068

Authors:
Jani Kinnunen <janikinnunen340@gmail.com>
Isak Sand <isak.sand@gmail.com>

Stats:
1	3	source/locale/fi/symbols.dic
 1 file changed, 1 insertion(+), 3 deletions(-)
From translation svn revision: 84068
From translation svn revision: 84076

Authors:
Joseph Lee <joseph.lee22590@gmail.com>
Chang-Hwan Jang <462356@gmail.com>
Dong Hee Park <hi@aheu.org>
Stanley Chung <stanley@mail.com>

Stats:
2696	573	user_docs/ko/changes.md
 1 file changed, 2696 insertions(+), 573 deletions(-)
From translation svn revision: 84076
From translation svn revision: 84219

Authors:
wangjanli@gmail.com
maro.zhang@gmail.com
Aaron Wu <waaron2000@gmail.com>
Victor Cai <surfer0627@gmail.com>
haach111000@gmail.com

Stats:
9	9	source/locale/zh_TW/characterDescriptions.dic
 1 file changed, 9 insertions(+), 9 deletions(-)
From translation svn revision: 84219
From translation svn revision: 84304

Authors:
Jani Kinnunen <janikinnunen340@gmail.com>
Isak Sand <isak.sand@gmail.com>

Stats:
2	2	source/locale/fi/symbols.dic
 1 file changed, 2 insertions(+), 2 deletions(-)
From translation svn revision: 84304
seanbudd and others added 30 commits May 5, 2025 09:58
This fixes #17980

Summary of the issue:
For PDF, the code was not grabbing MathML attributes needed for speech.

Description of user facing changes
The speech for math, and rarely the braille (e.g., bevelled fractions in Nemeth), was not always correct due to attributes not being picked up and the defaults being used.

Description of development approach
Unfortunately, the PDF interface does not allow grabbing all the attributes. Instead, one must ask for each attribute individually. Most attributes don't affect speech or braille, so it is not necessary to get them. I looked at what MathCAT used and added those.
Blocked by #17984

Summary of the issue:
In #17276, NVDA now treats the value of formular nodes in Adobe Acrobat as mathml, with out any real validation.
In PDF 2.0 documents, this is no doubt an okay assumption, but for PDF 1.7 documents generated by Microsoft Word, this is now causing Microsoft word generated math speech alternative text to be processed by mathCAT, resulting in broken or junk navigation, as Microsoft Word is exposing its math speech text as the value of the node.
However, at the same time Microsoft has also introduced a new custom mathml attribute it is exposing on formula nodes in PDFs generated from Microsoft Word, that contains real mathMl which is suitable for MathCAT.
NVDA should make use of this new custom attribute if it exists.

Description of user facing changes
In Adobe Acrobat, NVDA can now read and interact with Math equations in PDF documents generated by Microsoft word.

Description of development approach
AcrobatNode NVDAObject's mathml property: first try and fetch Microsoft Office's custom mathMl custom attribute if it exists. Otherwise fallback to using the node's value or descendants.
Beta to master
…18045)

Fixes #18023 

Summary of the issue:
SCons reading script files is very slow on Github Actions. This has been pinpointed to the initialization of the msvc SCons tool, particularly during execution of vcvarsall.bat

Description of user facing changes
About five minutes less runner time for a push.🚀

Description of development approach
We now cache the execution of vcvars using the SCONS_CACHE_MSVC_CONFIG environment variable:

For Appveyor, set the variable to True. This means that the cache is saved in the user profile. This is fine on appveyor because we're executing everything in one run. This is in line with how SCons runs appveyor itself.
For Github Actions, use a separate cache for the MSVC json file. After the first run, save the cache json file as part of the workspace. The cache action handles this automatically, there's no need to use cache/restore and cache/save explicitly.
Fixes #18037

Summary of the issue:
Remote Access's previously connected servers aren't being written to disc when the config is saved.

Description of user facing changes
Previously connected Remote Access servers are now persisted across NVDA restarts.

Description of development approach
The issue is because configobj only recognises config items as having changed when __setitem__ is called. Since lists are mutable, this was not happening.

Tidied up the _remoteClient.configuration.writeConnectionToConfig function a bit.
Don't take any action if the server to persist is already the last server stored in config.conf["remote"]["connections"]["lastConnected"].
Set config.conf["remote"]["connections"]["lastConnected"] to itself so that configobj recognises that it has changed, and will thuss write it out when saving the config.
Summary of the issue:
Remote Access's logging strategy is currently suboptimal.

Description of user facing changes
A new debug logging category, remoteClient, has been added.
When this is enabled, more information is logged by Remote Access.
Log messages that were previously not stored are now shown in NVDA's logs.
Description of development approach
In the config schema, add a new boolean key, remoteClient, to the debugLogging category. Add this to the list of log categories in the advanced settings panel. Also add a _isDebugForRemoteClient function to _remoteClient.configuration which returns the value of this config item.
In the TCPTransport class, if debug logging is enabled for remoteClient, log incoming and outgoing messages to make debugging easier.
In _remoteClient.localMachine and _remoteClient.serializer, switch to using logHandler.log, rather than a custom logger, so that all logs are collected in the same place.
…cess (#18044)

Fixes #18041

Summary of the issue:
Accidental disconnection as a follower in Remote Access can cause loss
of control, especially for physically inaccessible computers.

Description of user facing changes
- Added a "Confirm when disconnecting as a follower" checkbox to Remote
Access settings (enabled by default).
- When enabled, NVDA will show a confirmation dialog before
disconnecting from a remote session as a follower.

Description of development approach
- Added the `confirmDisconnect` option (default: True) to the Remote
Access settings and configuration.
- In `client.py`, updated the `disconnect` method to show a confirmation
dialog if the option is enabled and the client is in follower mode.

Testing strategy:
Manual testing
Follow-up to #18044

Summary of the issue:
The Remote Access disconnect confirmation dialog blocks the main thread.

Description of user facing changes
Dialog doesn't block the main thread.

Description of development approach
Undid my change that only called the dialog on the GUI thread, and
instead called the whole disconnect function on the GUI thread (as
@@cary-rowen did). Waiting for the response from the GUI thread still
blocked the main thread, causing NVDA to lock up.
Modified the unit tests to unwrap `RemoteClient.disconnect` before
calling it, so that it runs on the same thread as the unit tests.
Failure to do so causes the tests to fail as the two threads aren't
synchronised. This is why I initially changed this function, but
evidently I wasn't thinking or testing properly.

Testing strategy:
Ran from source, connected as follower, tried to disconnect, ensured I
could still use NVDA and that the process worked as expected.
)

Closes #17946
Supersedes #17987

Summary of the issue:
Remote Access's settings are entirely absent from the settings dialog in
secure mode.

Description of user facing changes
Remote Access's settings are now present, but disabled, in the settings
dialog in secure mode.

Description of development approach
Add all controls in the Remote Access settings panel to a static box
sizer so that they can be disabled en masse. If running in secure mode,
disable this static box. Also add a `wx.adv.BannerWindow` explaining why
the controls are read-only, similar to the Add-on Store dialog. Move
`RemoteSettingsPanel` to always be present in the settings categories.

Testing strategy:
Started NVDA normally and in secure mode (with `--secure`) and opened
Remote Access's settings.

Known issues with pull request:
The checkboxes are not visually dimmed, though they are inoperable.
…e NVDA Menu (#18070)

Closes #17947
Supersedes #17991 

Summary of the issue:
When executing some Remote Access actions via the Remote Access submenu
in the NVDA menu, the status is interrupted by the focus changing,
making the messages useless.

Description of user facing changes
Remote Access actions performed via the NVDA menu should now correctly
report their status.

Description of development approach
- Add a `delayedMessage` function to `ui`, based on the approach taken
for focusing open blocking modals in #17582.
- Remove the now duplicated code, and replace it with a call to
`ui.delayedMessage`.
- In `_remoteClient.client.RemoteClient`, updated `copyLink`,
`pushClipboard`, and `toggleMute`, to use `ui.delayedMessage` instead of
`ui.message`, as these methods can be envoked directly from the menu.
- Also moved the success message out of
`globalCommands.GlobalCommands.script_copyRemoteLink` into
`_remoteClient.client.RemoteClient.copyLink`.
- Updated `_remoteClient.cues._playCue` to use `ui.delayedMessage`
instead of `ui.message`, as the "Disconnect" menu item causes a cue to
be issued. This means that cues should work even if issued at the same
time as a UI change, and should have very little performance impact.

Testing strategy:
- Performed the above listed commands with and without a Remote Access
session in progress.
NVDA's translation documentation for Crowdin is hard to follow and is missing some key information and warnings, such as:
• Where NVDA's l10n utility is located
• Not to download / upload translation files directly with Crowdin or use Poedit's Crowdin cloud translation feature
• The fact that translation approvals are disabled on the project, meaning strings are essentially auto approved.

Description of user facing changes
Improve Translation documentation for Crowdin.
Specifically:
• Sections are now ordered in a (hopefully) more logical way: 
◦ Creating a Crowdin account
◦ Translation workflows 
▪ Translating via Crowdin's web interface 
▪ Translation Reviews / Approvals
▪ Translating with Poedit 
▪ Setting up PoEdit
▪ Locating the NVDA l10n Utility
▪ Downloading po / xliff files with NVDA's l10n Utility
▪ Translating po / xliff files using PoEdit
▪ Uploading po / xliff files with NVDA's l10n Utility
◦ Translating NVDA's interface
◦ Translating NVDA's user documentation
• Provided info on where to find NvDA's l10n utility.
• Clarified that translation approvals are disabled.
• Added a clear warning not to download / upload translation files directly via Crowdin, nor use Poedit's Crowdin cloud translation feature, as these can corrupt xliff files.
* Corrected incorrect shortcut key in Poedit
* Removed misleading sentence about Poedit not supporting approvals
PR Summary
This PR migrates from unittest.assertEquals to unittest.assertEqual which is deprecated from Python2.7:

DeprecationWarning: Please use assertEqual instead.
Update tracked translations for 2025.1beta5
…l computer (#18077)

Closes #17969

Summary of the issue:
The default gesture to toggle control between guest and host (NVDA+alt+tab) results in unintended consequences on the remote computer.

Description of user facing changes
These consequences should be avoided.

Description of development approach
Refactored keyboardHandler.KeyboardInputGesture.__init__ to make the logic for generalising modifier keys its own method.
In _remoteClient.client.RemoteClient.releaseKeys, send a keydown and keyup for VK_NONE before releasing all modifiers, if not doing so could cause side effects.
Based on the logic in keyboardHandler.KeyboardInputGesture.executeGesture.
Fixes #18081.

Summary of the issue:
When using NVDA Remote Access, if you are disconnected from the remote
server while controlling the remote computer, it is impossible to switch
back to the local computer.

Description of user facing changes
It is now possible to switch back to the local computer in this
situation.

Description of development approach
1. In `RemoteClient.toggleRemoteKeyControl`, only check if we're
disconnected when switching to the remote computer. If we're switching
to the local computer, allow the switch regardless of the connection
status.
2. In `TCPTransport.send`, log the disconnected error as a debugWarning
instead of an error to prevent spurious error sounds in this case, since
it is an expected, albeit less common, scenario.

I considered returning control to the local computer immediately when
the server disconnects. However, there are two problems with this that
made me decide against it:

1. It is risky because the user might press keys thinking they are going
to the remote computer, when they're actually going to the local
computer. Switching should always be an explicit user action.
2. The disconnection might be temporary and the user shouldn't have to
switch again in that case.

Testing strategy:
Followed the steps to reproduce from #18081. Verified the expected
result.
Follow up for #10393

Summary of the issue:
Since #10393, we log at level warning or higher for external Python
dependencies. There is no way to enable logging at lower levels, such as
debug. This can however be pretty helpful for external dependencies like
comtypes to see what's going on under the hood.

Description of user facing changes
Have extra logging when a new debugging category,
`externalPythonDependencies`, is enabled.

Description of development approach
The overall logging level is now determined from the level of the root
logger, which is no longer limited to a minimum of WARNING. Instead, a
filter is implemented on the handler that filters appropriately. Note
that initially, it made sense to add this filter to the root logger, but
filters don't propagate from the root logger to all loggers below.

Testing strategy:
Calling `comtypes.CoInitialize` with and without the new category
enabled, logging at level debug. Ensured that behavior was as expected
(i.e. comtypes logged when the category was enabled)

Known issues with pull request:
In #10393, I mentioned issues with re-entrancy when comtypes logs at
level debug. I have not yet reproduced this. That said, the logging
categories are documented in such a way that they should only be enabled
on request. I don't think this needs extra documentation.
Fixes #18039

Summary of the issue:
The mute and send SAS items are available in the Remote Access submenu
even when connected as a follower.

Description of user facing changes
These options are only shown when connected as a leader.

Description of development approach
In `_remoteClient.menu.Menu.handleConnected`, only enable the mute and
send SAS menu items if connected and connection mode is leader.
In `_remoteClient.client.RemoteClient`, updated the `toggleMute` and
`sendSAS` methods to report failure and return early when not connected
as leader.
Updated unit tests to work with the new checks.

Testing strategy:
Manually tested that the items are unavailable in the given situations.
Unit tests.

Known issues with pull request:
None.
Fixes #17944

Summary of the issue:
* The description of "This action cannot be undone." in "Delete all
trusted fingerprints" is inaccurate and can be easily restored by
pressing NVDA+Ctrl+R.
* The Remote Access section in the user guide is fairly repetitive, in
particular the Setting Up a Remote Access session, and the Remote Access
Dialog section.

Note that #17944 also mentions two problems which from my reading seem
to already be addressed by previous PRs:
1. The usage of "Allow this machine to be controlled", "Control another
machine", "Relay Server", "Direct Connection" is outdated.
2. "You can assign further commands in the Remote section of the Input
Gestures dialog." This sentence should be adjusted appropriately to
emphasize assigning shortcut keys to commands that have not assigned
keys.

Description of user facing changes
* Remote access settings - delete fingerprints: remove note that this
action cannot be undone from both the warning dialog and the user guide,
as reverting NVDA's config will restore these.
* Remote access Getting Started section in user guide: again remind the
user that enable remote access needs to be checked before the Remote
Access menu in the Tools menu will be available.
* userguide: rewrite the Setting Up a Remote Access Session, merging the
Remote Access Dialog section directly into it, removing repetitiveness.

Description of development approach
n/a

Testing strategy:
n/a

Known issues with pull request:
None known.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0