Thread: [Audacity-devel] patch bug extra vertical bar
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
From: Ed M. <edg...@wa...> - 2009-12-27 21:23:42
Attachments:
verticalBar.patch
|
Patch attached In file \audacity\src\Project.cpp at or near line number 2138: // static method, can be called outside of a project void AudacityProject::OpenFiles(AudacityProject *proj) { wxArrayString selectedFiles = ShowOpenDialog(_("Audacity projects|*.aup|")); if (selectedFiles.GetCount() == 0) { return; } Note that: (_("Audacity projects|*.aup|")); the string ends in a trailing | which one being translated from French to English causes an Assert because it has been corrected in the French fr.po: #: Project.cpp:2221 msgid "Audacity projects|*.aup|" msgstr "Projets Audacity (*.aup)|*.aup" I am fairly sure it should look like this: wxArrayString selectedFiles = ShowOpenDialog(_("Audacity projects|*.aup")); --Ed |
From: Gale A. <ga...@au...> - 2009-12-29 09:26:18
|
| From "Ed Musgrove" <edg...@wa...> | Sun, 27 Dec 2009 13:23:28 -0800 | Subject: [Audacity-devel] patch bug extra vertical bar > Patch attached > In file \audacity\src\Project.cpp at or near line number 2138: > > // static method, can be called outside of a project > void AudacityProject::OpenFiles(AudacityProject *proj) > { > wxArrayString selectedFiles = ShowOpenDialog(_("Audacity > projects|*.aup|")); > if (selectedFiles.GetCount() == 0) { > return; > } > > Note that: > (_("Audacity projects|*.aup|")); > the string ends in a trailing | which one being translated from French to > English causes an Assert because it has been corrected in the French fr.po: > > #: Project.cpp:2221 > msgid "Audacity projects|*.aup|" > msgstr "Projets Audacity (*.aup)|*.aup" > > I am fairly sure it should look like this: > > wxArrayString selectedFiles = ShowOpenDialog(_("Audacity > projects|*.aup")); I suspect the trailing pipe "|" is needed at line 2140 in Project.cpp because of the file formats following in the File > Open filter list (after "Audacity Projects"). Do you get an Assert running File > Open in Italian, where the trailing pipe has been left in by the translator? Anyway, when I looked at File > Open running Audacity in French, the file format filters were all displaying as *. and lists of extensions rather than the intended text, and weren't working. Adding the trailing pipe in fr.po fixes that, so I committed that change. I assume your patch isn't needed, therefore, but more importantly it got the problem noticed. Thanks, Gale |
From: Benjamin D. <bd...@ub...> - 2009-12-29 12:54:19
|
Am Dienstag, den 29.12.2009, 09:26 +0000 schrieb Gale Andrews: > | From "Ed Musgrove" <edg...@wa...> > | Sun, 27 Dec 2009 13:23:28 -0800 > | Subject: [Audacity-devel] patch bug extra vertical bar > > Patch attached > > In file \audacity\src\Project.cpp at or near line number 2138: > > > > // static method, can be called outside of a project > > void AudacityProject::OpenFiles(AudacityProject *proj) > > { > > wxArrayString selectedFiles = ShowOpenDialog(_("Audacity > > projects|*.aup|")); > > if (selectedFiles.GetCount() == 0) { > > return; > > } > > > > Note that: > > (_("Audacity projects|*.aup|")); > > the string ends in a trailing | which one being translated from French to > > English causes an Assert because it has been corrected in the French fr.po: > > > > #: Project.cpp:2221 > > msgid "Audacity projects|*.aup|" > > msgstr "Projets Audacity (*.aup)|*.aup" > > > > I am fairly sure it should look like this: > > > > wxArrayString selectedFiles = ShowOpenDialog(_("Audacity > > projects|*.aup")); > > I suspect the trailing pipe "|" is needed at line 2140 in Project.cpp > because of the file formats following in the File > Open filter list > (after "Audacity Projects"). Do you get an Assert running File > > Open in Italian, where the trailing pipe has been left in by the > translator? > > Anyway, when I looked at File > Open running Audacity in French, > the file format filters were all displaying as *. and lists of extensions > rather than the intended text, and weren't working. Adding the > trailing pipe in fr.po fixes that, so I committed that change. > > I assume your patch isn't needed, therefore, but more importantly > it got the problem noticed. Only "Audacity projects" should be translated and then "|*.aup|" should be appended to the translated string. -- Benjamin Drung Ubuntu Developer (www.ubuntu.com) | Debian Maintainer (www.debian.org) |
From: Richard A. <ri...@au...> - 2009-12-29 17:54:24
Attachments:
better-open-string-handling.patch
|
On Tue, 2009-12-29 at 13:22 +0100, Benjamin Drung wrote: > Am Dienstag, den 29.12.2009, 09:26 +0000 schrieb Gale Andrews: > > | From "Ed Musgrove" <edg...@wa...> > > | Sun, 27 Dec 2009 13:23:28 -0800 > > | Subject: [Audacity-devel] patch bug extra vertical bar > > > Patch attached > > > In file \audacity\src\Project.cpp at or near line number 2138: > > > > > > // static method, can be called outside of a project > > > void AudacityProject::OpenFiles(AudacityProject *proj) > > > { > > > wxArrayString selectedFiles = ShowOpenDialog(_("Audacity > > > projects|*.aup|")); > > > if (selectedFiles.GetCount() == 0) { > > > return; > > > } > > > > > > Note that: > > > (_("Audacity projects|*.aup|")); > > > the string ends in a trailing | which one being translated from French to > > > English causes an Assert because it has been corrected in the French fr.po: > > > > > > #: Project.cpp:2221 > > > msgid "Audacity projects|*.aup|" > > > msgstr "Projets Audacity (*.aup)|*.aup" > > > > > > I am fairly sure it should look like this: > > > > > > wxArrayString selectedFiles = ShowOpenDialog(_("Audacity > > > projects|*.aup")); > > > > I suspect the trailing pipe "|" is needed at line 2140 in Project.cpp > > because of the file formats following in the File > Open filter list > > (after "Audacity Projects"). Do you get an Assert running File > > > Open in Italian, where the trailing pipe has been left in by the > > translator? > > > > Anyway, when I looked at File > Open running Audacity in French, > > the file format filters were all displaying as *. and lists of extensions > > rather than the intended text, and weren't working. Adding the > > trailing pipe in fr.po fixes that, so I committed that change. > > > > I assume your patch isn't needed, therefore, but more importantly > > it got the problem noticed. > > Only "Audacity projects" should be translated and then "|*.aup|" should > be appended to the translated string. Ack. In fact there is no reason for this method to take a single, formatted, string. It could just as well take two arguments, one for the description (translated) and one for the extension (not translated). This gets rid of one lot of string parsing in the ShowOpenDialog() static method, and makes it easy to ensure the right string is translated (but the formatting isn't critical, indeed anything except a | character is valid in it) and the right bit isn't (because it's not exposed). My patch is rather huge, mostly consisting of documentation for the previously undocumented ShowOpenDialog() method (which I couldn't work out how to use without reading the whole of it), and the code changes associated with splitting the string in two. There is a minor follow-up patch to do the same for the Save dialogue, i.e. split the string into a translated one (same string as this one) and an untranslated file mask, but I haven't quite sorted it out yet (doesn't compile because _() + wxT() doesn't work). Richard |
From: Richard A. <ri...@au...> - 2009-12-30 16:22:16
|
On Tue, 2009-12-29 at 17:54 +0000, Richard Ash wrote: > My patch is rather huge, mostly consisting of documentation for the > previously undocumented ShowOpenDialog() method (which I couldn't work > out how to use without reading the whole of it), and the code changes > associated with splitting the string in two. > > There is a minor follow-up patch to do the same for the Save dialogue, > i.e. split the string into a translated one (same string as this one) > and an untranslated file mask, but I haven't quite sorted it out yet > (doesn't compile because _() + wxT() doesn't work). Turns out a <static_cast>() to wxSting was needed on the wxT() because that actually returns a wide character array not a string at all. Now comitted the lot, so there are two string deletions and one string addition for the audacity.pot file. Richard |