This changes the way the decimal point is specified in the
PO files...uses '<' for "," and ">" for ".".
By doing this the translator is free to use "." or "," in the
digits fields as their language requires.
Updated script to create Audacity.pot with Project-Id-Version
of audacity 2.3.2 and to update the Project-Id-Version in the po files too.
Ran script so as to apply it.
I have noticed that the lithuanian language file has not been updated for ages and was only a few percent completed so I pushed the completion to about 50 percent. I'll fully complete it soon but just wanted to have half of it out there
... Easily done with the following command.
ls *.po | xargs -t -n1 -I {} msgmerge -U --previous --add-location=file {} audacity.pot
Resulting files will have all the blanks to be filled in by the translators for
new messages.
--previous keeps the old msgids in comments, for which matches were only fuzzy,
as an aid to the translator.
--add-location=file includes file names only in comments, omitting line
numbers. If done again next time the files merge, then this will lessen the
diffs.
The results may include commented-out obsolete messages at the end, which
start with #~
At translator's discretion, these may be discarded when no longer helpful with
this command, substituting your filename twice for xx.po:
msgattrib -o xx.po --no-obsolete xx.po
Also updated POTFILES.in to include more src files.
Some of the 'new' files include MenusMac.cpp, ScrubbingToolBar, OverlayPanel.
Also the order is now correctly alphabetical within each directory.
Correct string formatting for:
2/15 %d + enum => %d + int
3/15 %lld + int64_t => %lld + long long
4/15 %d + int64_t => %lld + long long
5/15 %d + double => %f + double
6/15 %d + int32_t => %d + int
7/15 %d + intptr_t => %p + void*
8/15 gint, guint
9/15 %d + long => %ld + long
10/15 %n + int => %d + int
11/15 %x + int => %x + unsigned int
12/15 %f + int => %d + int
13/15 %S + wxChar* => %s + wxChar*
14/15 %d + size_t => %d + int
15/15 %d + size_t => %lld + long long
"The functions wxString::Format, wxString::Printf (and others indirectly) have become stricter about parameter types that don't match (format specifier vs. function parameters). So the bugs (that were already present in audacity before) become visible in wx3.0 as error message dialogs. I've checked all occurrences of Printf, wxPrintf, PrintfV, Format, FormatV, wxLogDebug and wxLogError systematically and made the type match."
Note (9/15): In TrackPanel.cpp, ExportMP2.cpp and CompareAudioCommand.cpp this patch supersedes related change done in r13466 because the new solution requires fewer casts and therefore simplifies the code.
Note: Many .po files are affected, and we need to be very careful about this. Incorrect "%d" and similar in translation files may lead to crashes in those languages (only). This is something we should actually have been more careful about in the past. We need to write a script to check that the "%d" and similar format specifiers match between English and translation.