Problem (at least on Windows 10): The commands no longer work properly. For a simple example, with one track selected, and the last clip selected, next clip moves to a non existant clip.
This was caused be commit baec816. In this commit, a member function was added to the struct FoundClip. Because FoundClip is no longer POD, statements such as:
AudacityProject::FoundClip result{}; no longer zero initialize the struct.
Fix: explicitly zero initialize the data members of FoundClip. I've also zero initialized the data members of FoundClipBoundary, where their are potentially similar problems, although there were no problems in my tests.
... See commit 3b90538b84411f6b08e10682406984e5f499fd74 which removed the
only use of the untranslated strings.
Also follows better i18n guidelines for composing the VSTEffect description.
Added preferences for Zoom-Toggle and put into menus.
New helper functions for determining zoom scaling.
Optional EXPERIMENTAL_ZOOM_TOGGLE_BUTTON added, and Light theme updated.
Not enabled for 2.2.2.
* Fix building without libid3tag
* Fix building without libid3tag
Extend the pull Audacity#214 from torto9 to fix building
with twolame but without libid3tag
- AutomationCommands replaces GetAllMenuCommands, and can provide
information about menus, buttons and toolbars to a script.
- BatchCommands can now return textual results to a script.
- There's a new GUID for mod-script-pipe and it is included in the .sln.
It's needed when we try to end a selection - with Select command - at the end of a track, because the value returned by GetTrackInfo was rounded, and therefore Select command would sometimes fail with "End time is after end of track!" error.
- a few typos in translated strings
- a few typos in my note-to-self-comment
- a few translated strings improvements
- a few min/maj
- a few punctuations
- ... -> … (unique character)
- ' -> '
a few more improvements
- one forgotten translation string
- "premier plan" -> "avant-plan"
- "nivelleur" -> "niveleur"
- "indépendemment" -> "indépendamment"
- "non compressé" -> "non-compressé"
- "entête" -> "en-tête"
- "audio" all feminine
- some typos
- more punctuations
- caring about lines with maximum 80 characters
useless one just to retrigger a travis build
more improvements
one typo
link to the francophone forum
... Threw away one field as unused; found a subtle but inconsequential mistake
in the use of another.
Fields that are stored for the purpose of internal identifiers should be
untranslated. Strings used to form registry keys should certainly be
untranslated. Translations should only happen for purposes of display to
the user.
... A "translated" effect family string, plus "/Enable", was used as a
registry key for lookup! It is wrong to key on a translation.
But in fact exhaustive search for "/Enable" shows that the only such strings
for which a written (by EffectsPrefs) registry value could be found were
AudioUnit
Ladspa
LV2
Nyquist
VAMP
VST
And none of these was actually a msgid in audacity.pot. So nothing bad can
really have happened in other locale settings.
... because I want to make a type distinction later.
Replace calls to GetXXX() without argument, with GetTranslatedXXX() --
this reveals a subtle error, see next commit.
... though the version (like the description) really wasn't yet used for
anything but to write and read again from the registry, still keep writing it.
Because it is appropriate to write untranslated strings to the registry, and
perhaps the values in old registries really will find a future use.
... it was simply written to registry and read again, serving no other
purpose.
But still write a blank to registry for backwards compatibility of the .cfg
file.
This makes it irrelevant whether the value of IdentInterface::GetDescription()
ought to be localized (registry values should probably not be).
Therefore IdentInterface::GetDescription can return localized, and it's all
right that the return be computed (as in VST effects), rather than
an unlocalized msgid that we rely on as an internal identifier.
... Specify an array of arrays of strings. Don't pack it all as a single
string that is parsed. This makes the setup clearer.
It also avoids some concatenations of localized strings (which I want to
make uncompilable some day), and also removes the need for translators to
count the \n's and replicate precisely.