-
-
Notifications
You must be signed in to change notification settings - Fork 641
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
Installer fails. Romanian windows display language #6326
Comments
The problem is triggered by the "ț" in the Romanian translation of "NVDA
web site" ("Locație web NVDA"). Trying to create a shortcut containing
this character fails, perhaps because it doesn't map to the system's
ANSI code page. However, I don't understand why ANSI would be used at
all here; we pas everything as Unicode and there's no reason for Windows
to convert it. I'll investigate further.
|
Technical: This can be reproduced with the following code in the Python |
sit web from ("Locație web NVDA") to ("Pagina web NVDA"). It's OK now? |
That should fix it, yes. Are you happy with this translation? If not, I can try to further investigate why Windows fails when we use this ț character. |
NVDA"). MR. James, thank you for your support. |
Okay. In that case, this can be closed once your updated translation is merged. This should be next Friday; you just missed out on the translation sync by a few hours. :) |
The new translation landed in ab4385d, so this should now work as expected. Thanks for your work. |
Hello. I'm requesting the reopening of this issue because it wasn't fixed. If a user has the Windows display language set to Romanian and wants to install NVDA 2017.3, 2017.2, 2017.1 or 2016.4, the error that have been mentioned in my first comment of this issue still appears. |
Thanks for reopening. I hope this bug will be succesfully fixed. |
As noted in #6326 (comment), this should have been fixed by the new translation of "NVDA web site" ("Pagina web NVDA"). If this error is still occurring, it is occurring due to a different message. Please provide a new log showing the installation failing, as the line number in the code where the error occurs is probably different. Thanks. |
Hello James, the log is here. INFO - main (09:18:05.325): |
Okay. Same problem, even same character, but different message. The problematic message is: "Explorează dosarul NVDA pentru configurație utilizator" Note the "ț" in "configurație". I just checked the translation and there are two other strings that are going to hit this same problem:
It looks like this happens for any character that can't be encoded using the system ANSI code page:
If I try creating the shortcut with either of the latter two, I get an exception. Even though we pass the string as Unicode, wScript.Shell seems to convert it to ANSI. It seems others have hit this problem too. Note that this is definitely not a file system issue; you can quite happily write a file containing these characters if you use native Unicode:
I wonder whether we'll need to switch to an alternative way of creating these shortcuts. We should be able to do this using IShellLink and friends. IShellLink specifically mentions IShellLinkA and IShellLinkW interfaces, which suggests the latter does explicitly do Unicode. See this article for further details. I did a bit of investigation on this in the labyrinth that is MSDN:
CC @michaelDCurran so he's aware of this. I'd say this is pretty high priority, since it breaks installation for Romanian users. |
Hello Jamie! |
That might work. ţ does seem to be handled correctly by my system's ANSI code page. However, I'm on an English system, so the results might be different. Can you please try the following:
|
the result is
'\xfe'
W dniu 04.09.2017 o 00:10, James Teh pisze:
…
That might work. ţ does seem to be handled correctly by my system's
ANSI code page. However, I'm on an English system, so the results
might be different. Can you please try the following:
1. Open the NVDA Python console by pressing NVDA+control+z.
2. Paste the following exactly as it appears:
|u"ţ".encode("mbcs")|
3. Press enter.
4. Press f6 and copy the resulting output.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#6326 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AKohk4ezHbmC1c-Jp05nW80uvcykDkxKks5seyPCgaJpZM4Jyawa>.
|
Note!
done on the polish system windows 10 64 bit!
W dniu 04.09.2017 o 00:10, James Teh pisze:
…
That might work. ţ does seem to be handled correctly by my system's
ANSI code page. However, I'm on an English system, so the results
might be different. Can you please try the following:
1. Open the NVDA Python console by pressing NVDA+control+z.
2. Paste the following exactly as it appears:
|u"ţ".encode("mbcs")|
3. Press enter.
4. Press f6 and copy the resulting output.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#6326 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AKohk4ezHbmC1c-Jp05nW80uvcykDkxKks5seyPCgaJpZM4Jyawa>.
|
I'm most interested in seeing the result on a system set to Romanian, as
that is where this bug will strike. Thanks for testing, though, @zstanecic!
|
is that the expected behavior or is it correct?
W dniu 04.09.2017 o 01:15, James Teh pisze:
… I'm most interested in seeing the result on a system set to Romanian, as
that is where this bug will strike. Thanks for testing, though,
@zstanecic!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#6326 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AKohkwVtyX4wUbkURXQp4rjdWlvD2r3sks5sezMsgaJpZM4Jyawa>.
|
That should be fine. The really important thing is that the output doesn't
return "?", as that means it can't be encoded, which will mean that the
code in question will fail. Having said that, the output will also
determine what character actually gets included in the file name. Without
knownig more about how Windows handles Romanian, I can't diagnose that from
here, but at the very least, a strange character in the file name is better
than installation failing.
|
to cite your previous sentence:
a strange character in the file name is better
than installation failing.
I don’t agree, as the user using the braille display or speech
synthesis, should get the accurate information
W dniu 04.09.2017 o 01:30, James Teh pisze:
… That should be fine. The really important thing is that the output doesn't
return "?", as that means it can't be encoded, which will mean that the
code in question will fail. Having said that, the output will also
determine what character actually gets included in the file name. Without
knownig more about how Windows handles Romanian, I can't diagnose that
from
here, but at the very least, a strange character in the file name is
better
than installation failing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#6326 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AKohkxNb4SVp7tZn8RYD-aLTODOz8tTwks5sezaagaJpZM4Jyawa>.
|
Of course they should. However, I think a user would prefer one incorrect
character over NVDA failing to install altogether (and thus being
completely unusable). I'm not suggesting we don't want to fix the problem
completely. I'm suggesting that if we can at least get it installing, even
at the cost of a broken character, that is better than the current
situation. The proper fix is going to require a lot more time and I'd
rather Romanian users weren't waiting for months to be able to install NVDA.
|
Well, there is another workaround, but it needs a separate issue:
allow user at the start of installation to select language,
and install NVDA in english
and then swithc nvda to romanian.
but, we should see, how nvda handles this on the romanian window
W dniu 04.09.2017 o 02:07, James Teh pisze:
… Of course they should. However, I think a user would prefer one incorrect
character over NVDA failing to install altogether (and thus being
completely unusable). I'm not suggesting we don't want to fix the problem
completely. I'm suggesting that if we can at least get it installing, even
at the cost of a broken character, that is better than the current
situation. The proper fix is going to require a lot more time and I'd
rather Romanian users weren't waiting for months to be able to install
NVDA.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#6326 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AKohk6-ZLZy1_nQ8SAiM-KvOLe_CI8Gvks5sez9CgaJpZM4Jyawa>.
|
You could already do that by changing the NVDA language from General
Settings. However, that will result in the NVDA program icons, etc. being
created in English, which isn't a good solution. Regardless, let's keep
this issue focused on the actual problem. Thanks.
|
Hello Jamie, the result is: 't' |
Note: My system is set to Romanian. |
so, florian, you have the t without diacritic, wich should be present
W dniu 09.09.2017 o 11:02, florianionascu7 pisze:
…
Hello Jamie, the result is: 't'
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#6326 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AKohk73tVrDBAorIjCEQ4du-SXy_pKPSks5sglQ7gaJpZM4Jyawa>.
|
I think this means that if you translate it in this way, users will end up
with a "t" in the shortcut name instead of the accented t. Is that
acceptable in the short term? To put it another way, is that better for
your users than not being able to install NVDA at all? Long term, it'd
obviously be better to fix this properly, but that's not likely right now.
|
Will switch to python3 solve this issue?
W dniu 09.09.2017 o 12:51, James Teh pisze:
… I think this means that if you translate it in this way, users will end up
with a "t" in the shortcut name instead of the accented t. Is that
acceptable in the short term? To put it another way, is that better for
your users than not being able to install NVDA at all? Long term, it'd
obviously be better to fix this properly, but that's not likely right now.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#6326 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AKohk1SsoBIYZ7ew5Q3Oy0FzimfqKdc0ks5sgm2hgaJpZM4Jyawa>.
|
This might be a solution. |
No, switching to Python 3 won't solve this, and that's a year or two away anyway.
|
Hello, I've installed the latest master Snapshot and I've received the same error. This is the log: |
Hello. I installed the latest master snapshot and I noticed that the problem has been fixed succesfully. Thank you all for the support. |
Well, this issue can be closed now and can be added to 2017.4 milestone. Finally, I can say that I enjoy this bug was fixed after a long discussion time. |
Closing, as requested in #6326 (comment) |
Hello! Please re-open this issue, as it re-occured in NVDA 2019.3. Here's the log.
What's the problem? |
Re-opening as requested. |
Partial fix for #5166 #6326 Some unicode characters can not be used by the wsh API to create a shortcut. Sometimes translations contain these characters causing an error during installation. Mitigate this issue by wrapping each call to create shortcut in a try block, on error try to create the shortcut without translation.
Hi everyone!
I found a bug in NVDA. This exists from NVDA 2016.2.
I am using my Windows display language in romanian and, for example, I tried to install NVDA RC2 for 2016.3.
When the instalation process finish, NVDA doesn't tell me that it has been succesfully installed, it displays an error: NVDA instalation failed, please see the log viewer for more informations.
If I use the windows display language in english, NVDA will install succesfully.
Note: I haven't tried to use other language packages, I speak only romanian and english. I know that at romanian NVDA has this bug and it must be fixed.
Please read this log.
Thank you!
INFO - main (00:10:29):
Starting NVDA
INFO - core.main (00:10:30):
Config dir: C:\Users\Florian Ionascu\AppData\Roaming\nvda
INFO - core.main (00:10:30):
NVDA version rc-13528,308e048d
INFO - core.main (00:10:30):
Using Windows version 10.0.10586 workstation
INFO - core.main (00:10:30):
Using Python version 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)]
INFO - core.main (00:10:30):
Using comtypes version 0.6.2
INFO - synthDriverHandler.setSynth (00:10:32):
Loaded synthDriver vocalizer_expressive
INFO - core.main (00:10:32):
Using wx version 3.0.2.0 msw (classic)
INFO - braille.initialize (00:10:32):
Using liblouis version 2.6.5
INFO - braille.BrailleHandler.setDisplayByName (00:10:32):
Loaded braille display driver noBraille, current display has 0 cells.
INFO - brailleInput.initialize (00:10:32):
Braille input initialized
WARNING - core.main (00:10:32):
Java Access Bridge not available
INFO - _UIAHandler.UIAHandler.MTAThreadFunc (00:10:32):
UIAutomation: IUIAutomation3
INFO - _UIAHandler.UIAHandler.MTAThreadFunc (00:10:32):
UIAutomation: IUIAutomation3
INFO - core.main (00:10:34):
NVDA initialized
ERROR - RPC process 11132 (nvda_slave.exe) (00:11:04):
main.main:
slave error
Traceback (most recent call last):
File "nvda_slave.pyw", line 29, in main
File "installer.pyc", line 391, in install
File "installer.pyc", line 202, in registerInstallation
File "installer.pyc", line 56, in createShortcut
File "comtypes\client\lazybind.pyc", line 163, in caller
File "comtypes\automation.pyc", line 664, in _invoke
COMError: (-2147352567, 'Exception occurred.', (None, None, None, 0, None))
ERROR - gui.installerGui.doInstall (00:11:04):
Installation failed: 1
INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (00:11:21):
Developer info for navigator object:
name: u'Skype\u2122\u200e [42] - florianionascu@hotmail.com'
role: ROLE_PANE
states: STATE_FOCUSABLE
isFocusable: True
hasFocus: False
Python object: <NVDAObjects.IAccessible.IAccessible object at 0x052273F0>
Python class mro: (<class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (-32000, -32000, 0, 0)
value: None
appModule: <'skype' (appName u'skype', process ID 18596) at address 52277d0>
appModule.productName: u'Skype'
appModule.productVersion: u'7.26'
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 66580
windowClassName: u'tSkMainForm'
windowControlID: 1049957
windowStyle: 919535616
windowThreadID: 7276
windowText: u'Skype\u2122\u200e [42] - florianionascu@hotmail.com'
displayText: u''
IAccessibleObject: <POINTER(IAccessible) ptr=0x7722898 at 4e41990>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=66580, objectID=-4, childID=0
IAccessible accName: u'Skype\u2122\u200e [42] - florianionascu@hotmail.com'
IAccessible accRole: ROLE_SYSTEM_CLIENT
IAccessible accState: STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048576)
IAccessible accDescription: None
IAccessible accValue: None
The text was updated successfully, but these errors were encountered: