Discussion:
[bug #52494] Does not handle exceptions when loading translations
Yavor Doganov
2017-11-24 14:36:31 UTC
Permalink
URL:
<http://savannah.gnu.org/bugs/?52494>

Summary: Does not handle exceptions when loading translations
Project: GNUstep
Submitted by: yavor
Submitted on: Fri 24 Nov 2017 04:36:29 PM EET
Category: Gorm
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any

_______________________________________________________

Details:

I tried to translate a .gorm file using Gorm's Document->Translate feature.
Exported the strings fine but couldn't load the translated .strings file. I
selected the file in the open panel, pressed OK, the panel disappeared but
nothing happened. It took me some time to figure out what's going on...

The exported strings are unquoted when there is only one word and I simply
forgot to quote one translated string. So the exception that is rasied in
GSPropertyListFromStringsFormat is not caught by Gorm. IMHO this is not
proper behavior: Gorm should report the error, otherwise the user is left
wondering what actually happened. Also, you should not assume that
translators are aware that strings must be quoted, so I think it is a good
idea to provide them with some hint (using the established practice of
conveying information with a comment starting with "TRANSLATORS:").

Attached is a patch that fixes this issue. I see that the ChangeLog has not
been updated recently, but here is a suggested entry anyway:

2017-11-24 Yavor Doganov <***@gnu.org>

* GormCore/GormDocument.m (translate:): Add exception handling
when loading translations.
(exportStrings:): Prepend notice for translators.



_______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Fri 24 Nov 2017 04:36:29 PM EET Name:
0001-Add-exception-handling-when-loading-translations.patch Size: 2KiB By:
yavor

<http://savannah.gnu.org/bugs/download.php?file_id=42468>

_______________________________________________________

Reply to this item at:

<http://savannah.gnu.org/bugs/?52494>

_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
Yavor Doganov
2017-11-24 21:55:38 UTC
Permalink
Follow-up Comment #1, bug #52494 (project gnustep):

One thing is bothering me... GUI sets its own exception handler so if
application code does not catch an exception, a critical alert panel must be
shown in addition to the usual logging that comes from Base. In this case
there is no alert panel and nothing is logged. I thought it might be a bug in
the runtime but at first glance it doesn't seem so. A minimalistic program
([NSApplication sharedApplication] immediately followed by code that triggers
an exception) works as expected.

I'm quite certain there's another bug here; uncaught exceptions shouldn't be
swept under the carpet. Any ideas?

_______________________________________________________

Reply to this item at:

<http://savannah.gnu.org/bugs/?52494>

_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
Gregory John Casamento
2018-01-25 02:12:29 UTC
Permalink
Update of bug #52494 (project gnustep):

Status: None => Fixed
Assigned to: None => gcasa
Open/Closed: Open => In Test

_______________________________________________________

Follow-up Comment #2:

This should now be fixed. Please test.

_______________________________________________________

Reply to this item at:

<http://savannah.gnu.org/bugs/?52494>

_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
Yavor Doganov
2018-01-26 05:26:57 UTC
Permalink
Follow-up Comment #3, bug #52494 (project gnustep):

The applied fix is basically my proposed patch, with one minor nuance. I have
already tested it.

_______________________________________________________

Reply to this item at:

<http://savannah.gnu.org/bugs/?52494>

_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/

Loading...